从 markdown 生成 HTML 仅适用于 React App 中的 dangerouslySetInnerHTML
Generating HTML from markdown only works with dangerouslySetInnerHTML in React App
我正在尝试编写一个简单的 markdwon 预览器。
问题是当我在渲染方法中的 div 中插入生成的 HTML 文本时,如下所示:
render() {
return (
<div>
{this.state.genHTML}
</div>
);
}
它不会呈现,而是像字符串一样显示它的标签。
但是 dangerouslySetInnerHTML
生成的 HTML 被渲染了。
我想知道为什么会这样?
一般来说,从代码中设置 HTML 是有风险的(因为跨站点脚本(XSS)),这就是为什么在 React 中你需要使用 "dangerouslySetInnerHTML" 来设置它。这只是一个规则,如果你想使用 React 框架,你需要遵守。
我正在尝试编写一个简单的 markdwon 预览器。 问题是当我在渲染方法中的 div 中插入生成的 HTML 文本时,如下所示:
render() {
return (
<div>
{this.state.genHTML}
</div>
);
}
它不会呈现,而是像字符串一样显示它的标签。
但是 dangerouslySetInnerHTML
生成的 HTML 被渲染了。
我想知道为什么会这样?
一般来说,从代码中设置 HTML 是有风险的(因为跨站点脚本(XSS)),这就是为什么在 React 中你需要使用 "dangerouslySetInnerHTML" 来设置它。这只是一个规则,如果你想使用 React 框架,你需要遵守。