【发布时间】:2020-01-17 05:00:54
【问题描述】:
我在一个带有一些 HTML 标记的对象中有一个字符串,我想使用 map 函数打印该对象中的值。
const tableBody = [
{
date: '02/08/2019',
item: 'Renewed your <strong>current Team Plan</strong>'
},
{
date: '05/09/2019',
item: 'Renewed your current Team Plan 2'
},
{
date: '15/10/2019',
item: 'Renewed and upgraded to the <strong> Business Plan </strong> with 3 new members'
}
];
<table>
{tableBody.map(tableBody => (
<tr>
<td>{tableBody.date}</td>
<td>{tableBody.item}</td>
</tr>
))}
</table>
当我运行此代码时,我希望字符串中的 <strong> 标记编译为 HTML 元素,而不是呈现为纯文本。那么有什么方法可以实现这些吗?
【问题讨论】:
-
dangerouslySetInnerHTML 是您所需要的。但这是有原因的。使用时需要小心。
-
最好不要使用
dangerouslySetInnerHTML,而是更改json结构并将您的项目拆分为另一个对象,例如item: { first: ' some text ', second: 'the strong text', third :' the other text' }。然后在 HTML<td>{tableBody.item.first} <strong>{tableBody.item.second}</strong>{tableBody.item.third}</td>
标签: javascript reactjs jsx