Javascript 在React.js中将字符串转换为真正的HTML
我从HTML附带的API收到信息。结果是,当我试图在代码中显示信息时,它将HTML转换为字符串,而不是真正的HTML。Javascript 在React.js中将字符串转换为真正的HTML,javascript,reactjs,api,Javascript,Reactjs,Api,我从HTML附带的API收到信息。结果是,当我试图在代码中显示信息时,它将HTML转换为字符串,而不是真正的HTML。 我搜索了很多,我看到的只是危险的setinenerHTML的方法,但我也看到了一些关于它的评论和评论,如果存在其他解决方案,我不想使用它。此外,我尝试使用Fragmant,但没有成功 下面是我的render()代码: 返回( {models.map(model=>( ))} ); 这是一张显示以下内容的图片: 检查您试图附加到节点的文本是否没有如下转义: model: {
我搜索了很多,我看到的只是
危险的setinenerHTML
的方法,但我也看到了一些关于它的评论和评论,如果存在其他解决方案,我不想使用它。此外,我尝试使用Fragmant
,但没有成功
下面是我的render()代码:
返回(
{models.map(model=>(
))}
);
这是一张显示以下内容的图片:
检查您试图附加到节点的文本是否没有如下转义:
model: {
description: '<h1>Hi there!</h1>'
}
<p className="Features">{model.description.fromCharCode(183)}</p>
与此相反:
model: {
description: '<h1>Hi there!</h1>'
}
模型:{
描述:“你好!”
}
如果是转义的,您应该从服务器端转换它
如果你不能尝试这样的事情:
model: {
description: '<h1>Hi there!</h1>'
}
<p className="Features">{model.description.fromCharCode(183)}</p>
{model.description.fromCharCode(183)}
另一个选项是ReactHtmlParser和UnescapingTML的组合:
从“react html parser”导入react htmlparser;
让模型=[
{
描述:“你好”
},
{
描述:“h1你好/h1”
}
];
函数App(){
函数unescapethtml(html){
var escapeEl=document.createElement(“textarea”);
escapeEl.innerHTML=html;
返回escapeEl.textContent;
}
返回(
{model.map(des=>{
返回ReactHtmlParser(unescapethtml(des.description));
})}
);
}
如果字符串中包含html,则可以使用将其呈现为html
return (
<div>
{models.map(model => (
<a href="/sofa">
<div className="Parcelas" key={model.id}>
<img
src={"url" + model.image}
className="ParcImage"
alt="sofa"
/>
<h1>Sofá {model.name}</h1>
<h2>
1,200<span>€</span>
</h2>
<p
className="Features"
dangerouslySetInnerHTML={{ __html: model.description }}
/>
<button className="Botao">
<p className="MostraDepois">Ver Detalhes</p>
<span>+</span>
</button>
<img src="../../img/points.svg" className="Decoration" alt="points" />
</div>
</a>
))}
</div>
);
返回(
{models.map(model=>(
))}
);
你能给我们提供更多信息吗,比如你如何建模对象的样子或一个示例屏幕截图?@MaddEye我编辑了这个问题你找到了安全的解决方案吗?一些线程建议使用库,但它们没有提到任何有关安全性的内容。我使用了Thole所讨论的下面的解决方案。Idk about security@OmarThw HTML来自API响应,我该如何做model:{}
?另外,fromCharCode(183)中的表示错误它不是一个函数
它只是一个可能的json模型的视图。我用一个可运行的示例来编辑答案,以获得一个可行的解决方案