[英]Raw HTML is getting rendered on DOM in React component
我收到来自API的响应,并且想将其转换为适当的html
并希望在dom
上呈现它,但它呈现的是原始html和特殊字符。
示例api响应:
resp = {
body: "<p>Cali Thirty Seven turned what appeared to be certain defeat into an exhilarating and much-deserved victory late Saturday afternoon at Gulfstream Park. She reasserted herself after relinquishing the lead to 8-5 favorite Stormy Victoria to successfully defend her title in the $100,000 Powder Break Stakes.</p>\r\n<p>"
}
在react组件中,我通过以下方式渲染它:
<p
className="newsDescription"
dangerouslySetInnerHTML={{ __html:this.props.story.desp }}
/>
我试图逃脱html,但无法正常工作。
您必须将字符串中包含的所有html字符替换为相应的标记。 由于在您的示例中,您只有"<p>
(与<p>
相对应),因此可以执行以下操作:
验证this.props.story.desp
是否具有值a是字符串,然后替换:
<span
className="newsDescription"
dangerouslySetInnerHTML={{ __html: this.props.story.desp.replace(/</g, '<').replace(/>/g, '>')}}
/>
这将生成一个<span>
与元素<p>
元素内部(段落元素从您的API来) <span>
你的文字。 另外,请注意,这将替换所有创建段落标签的情况。
不幸的是,没有通用的普通javascript函数来替换所有可能的标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.