我正在尝试用 JSX 标签替换部分字符串,如下所示:
render: function() {
result = this.props.text.replace(":",<div className="spacer"></div>);
return (
<div>
{result}
<div>
);
}
但鉴于 this.props.text
是 Lorem : ipsum
,它会导致
<div>
Lorem [object Object] ipsum.
</div>
有没有办法解决这个问题或用 JSX 标签替换部分字符串的其他方法?
原文由 Magnus Engdal 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您将 JSX 元素传递给
replace()
作为第二个参数时,该元素将转换为字符串,因为replace()
需要一个字符串作为第二个参数。您需要做的是将您的字符串转换为字符串和 JSX 元素的数组。所以你的result
变量应该包含类似['Lorem ', <div className="spacer"></div>, ' ipsum']
的东西。像这样的东西: