[英]Generating HTML from markdown only works with dangerouslySetInnerHTML in React App
I am trying to write a simple markdwon previewer.我正在尝试编写一个简单的 markdwon 预览器。 the problem is when I insert the Generated HTML text inside a div in render method like this:
问题是当我在渲染方法中的 div 中插入 Generated HTML 文本时,如下所示:
render() {
return (
<div>
{this.state.genHTML}
</div>
);
}
it does not rendered, and displays as it written with its tags just like as if a string.它不会被渲染,而是像用字符串一样显示它所写的标签。 But with
dangerouslySetInnerHTML
the Generated HTML is got rendered.但是使用
dangerouslySetInnerHTML
生成的 HTML 被渲染。
I want to know why this occurs?我想知道为什么会这样?
In general, setting HTML from code is risky(because of cross-site scripting (XSS)), and this is why in React you need to use "dangerouslySetInnerHTML" to set it.一般来说,从代码中设置 HTML 是有风险的(因为跨站点脚本(XSS)),这就是为什么在 React 中你需要使用“dangerouslySetInnerHTML”来设置它。 This is just a rule that you need to follow if you want to use a React framework.
如果您想使用 React 框架,这只是您需要遵循的规则。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.