Reactjs 如何在React中呈现HTML字符串?
我有一个类似于Reactjs 如何在React中呈现HTML字符串?,reactjs,Reactjs,我有一个类似于的字符串hi。我必须将其渲染为“嗨”。有人能告诉我一个类似于innerHTML的东西,我可以在React中使用吗?您好,您可以尝试带有附带标签的危险的HTML: <div dangerouslySetInnerHTML={{ __html: yourhtml }} /> 根据官方数据 危险的是,React取代了在浏览器DOM中使用innerHTML。一般来说,从代码中设置HTML是有风险的,因为很容易在不经意间让用户遭受跨站点脚本(XSS)攻击。因此,您可以直接
的字符串hi
。我必须将其渲染为“嗨”。有人能告诉我一个类似于innerHTML
的东西,我可以在React中使用吗?您好,您可以尝试带有附带标签的危险的HTML
:
<div dangerouslySetInnerHTML={{ __html: yourhtml }} />
根据官方数据
危险的是,React取代了在浏览器DOM中使用innerHTML。一般来说,从代码中设置HTML是有风险的,因为很容易在不经意间让用户遭受跨站点脚本(XSS)攻击。因此,您可以直接从React设置HTML,但您必须键入危险的LysetinerHTML并传递带有_HTML键的对象,以提醒自己这是危险的。例如:
函数createMarkup(){
返回{uuuhtml:'First·;Second'};
}
函数MyComponent(){
返回;
}
在我的例子中,我使用了以下包装
为了避免在使用
危险的LySetinerHTML
时出现潜在的安全漏洞(如XSS攻击),您可以执行以下操作:
首先使用它来清理HTML
从“domprify”导入domprify代码>
let clean=domprify.sanitize(dirtyHtmlString,{USE_PROFILES:{html:true}})代码>
然后可以使用Salman Lone所说的:
从“react render html”导入renderHTML代码>
<div>
{renderHTML(clean)}
</div>
{renderHTML(干净)}
isReactDOM.Render()
没有做这项工作吗?没有足够的信息嗨,请对答案进行投票并接受答案,这样像我这样的人将获得奖励,并在将来提供更棒的答案:)是的,我做了杰芬。这是有道理的!这样做的安全方法是什么?除了引用文档之外,还增加了哪些额外信息?一个多小时前的答案指向了相同的解决方案。
<div>
{renderHTML(clean)}
</div>