【发布时间】:2019-06-18 21:14:02
【问题描述】:
目前我的一个组件中有这个:
{someObject.map(obj => (
<div
dangerouslySetInnerHTML={{
__html: obj.text
}}
/>
))}
基本上,我映射到另一个文件上的someObject。结构是这样的:
export default someObject = [
{
obj: "<p>Some text 1.</p>"
},
{
obj: "<p>Some text 2.</p>"
}
]
我只是为了演示而简化了内容。但是,我遇到了一个问题,因为我需要在其中一项中使用<Link /> 组件。如:
export default someObject = [
{
obj: "<p>Some text 1.</p>"
},
{
obj: "<p>Some text 2.</p>"
},
{
obj: "<p>Some text 2 and <Link to="/someroute">link</Link>.</p>"
}
]
但是,它不起作用,因为整个 <p></p> 标记都包含在 dangerouslySetInnerHTML 中。
我可以只使用普通的<a></a> 标记作为链接,但这似乎不是一个好的解决方案,因为整个应用程序会重新加载,而不是仅仅转到另一条路线。
还有哪些其他选项可以完成这项工作?
【问题讨论】:
-
为什么不把它们转换成简单的 JSX sn-ps 并像普通的 react 组件子组件一样使用它们?
-
@Derek 可以详细说明一下吗?举个例子?
-
@Derek 没关系,我明白你的意思。意识到我实际上可以使用 JSX 作为对象的值。
标签: javascript reactjs react-router react-router-dom