这就是渲染代码现在的样子(我知道这样做是不安全的):
render: function() {
return (
<div className="container-fluid pages_container">
<p dangerouslySetInnerHTML={{__html: this.state.page.body}} />
</div>
);
}
问题是如何安全地渲染它?我知道jQuery中有一些.html()方法,但我没有做到:)
P.S。包含jQuery,因为它是一个Rails应用程序。
答案 0 :(得分:23)
参考https://facebook.github.io/react/docs/dom-elements.html#dangerouslysetinnerhtml
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.2/marked.min.js"></script>
render: function() {
return (
<div className="container-fluid pages_container">
<p dangerouslySetInnerHTML={{__html: marked(this.state.page.body, {sanitize: true})}} />
</div>
);
}