Javascript 在React.js中将字符串转换为真正的HTML

Javascript 在React.js中将字符串转换为真正的HTML,javascript,reactjs,api,Javascript,Reactjs,Api,我从HTML附带的API收到信息。结果是,当我试图在代码中显示信息时,它将HTML转换为字符串,而不是真正的HTML。 我搜索了很多,我看到的只是危险的setinenerHTML的方法,但我也看到了一些关于它的评论和评论,如果存在其他解决方案,我不想使用它。此外,我尝试使用Fragmant,但没有成功 下面是我的render()代码: 返回( {models.map(model=>( ))} ); 这是一张显示以下内容的图片: 检查您试图附加到节点的文本是否没有如下转义: model: {

我从HTML附带的API收到信息。结果是,当我试图在代码中显示信息时,它将HTML转换为字符串,而不是真正的HTML。
我搜索了很多,我看到的只是
危险的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: '&lt;h1&gt;Hi there!&lt;/h1&gt;'
}
<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模型的视图。我用一个可运行的示例来编辑答案,以获得一个可行的解决方案