简体   繁体   English

从 markdown 生成 HTML 仅适用于 React App 中的 dangerouslySetInnerHTML

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM