从 markdown 生成 HTML 仅适用于 React App 中的危险 SetInnerHTML



我正在尝试编写一个简单的markdwon预览器。 问题是当我在渲染方法中的div 中插入生成的 HTML 文本时,如下所示:

render() {
return (
<div>
{this.state.genHTML}
</div>  
);
}

它不会呈现,而是像字符串一样使用其标签显示。但是随着dangerouslySetInnerHTML生成的 HTML 被渲染。

我想知道为什么会这样?

一般来说,从代码中设置 HTML 是有风险的(因为跨站点脚本 (XSS((,这就是为什么在 React 中你需要使用"dangerouslySetInnerHTML"来设置它。这只是如果你想使用 React 框架需要遵循的规则。

最新更新