javascript - 在 react 中对字符串应用跨度会返回 [object Object] 而不是给我跨度文本

标签 javascript reactjs

我正在尝试对句子中的某些词应用跨度。

return "hello how are you hello".replace(/hello|you/gi, <span className="some-class">"new"</span>);

在我看来,我看到的是 [object Object] 而不是 (span)new(span) (span)new(span) (span)new(span)

我也尝试过使用 dangerouslySetInnerHTML 但没有成功。我仍然得到 [object Object]

最佳答案

String.prototype.replace 返回一个字符串,因此它将您的 React.createElement 调用转换为字符串 [object Object]

相反,您可能希望将句子拆分成单词,映射它们并返回 jsx(如果它与您的正则表达式匹配),否则返回字符串。

var stringArray = "hello how are you hello".split(" ")
var regex = /hello|you/i
var elements = stringArray.map(string =>
  regex.test(string) ? <span>{ string }</span> : string
)

render() {
  return <div>{ elements }</div>
}

关于javascript - 在 react 中对字符串应用跨度会返回 [object Object] 而不是给我跨度文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463637/

相关文章:

javascript - 关闭子窗口

javascript - 如何使数据输入只读,但显示日历?

javascript - 在高阶函数中访问数组对象

javascript - 我如何使用多个引用来嵌套带有钩子(Hook)的元素数组,或任何其他方式

reactjs - Redux 期望 reducer 是一个函数

javascript - SoundCloud:更新轨道元数据不起作用

javascript - react 路由器组件 Prop 不接受 <Link/> 组件?

reactjs - 如何将 AppSettings 从 ASP.NET Core MVC Controller 传递到 ReactJS/Redux ClientApp?

reactjs - 如何在创建 react 应用程序提交之前运行测试?

javascript - Angular 2 和 Express 日期格式 MongoDB