React.js将文本呈现为HTML

时间:2015-08-06 08:29:12

标签: javascript jquery reactjs

这就是渲染代码现在的样子(我知道这样做是不安全的):

render: function() {
  return (
    <div className="container-fluid pages_container">
      <p dangerouslySetInnerHTML={{__html: this.state.page.body}} />
    </div>
  );
}

问题是如何安全地渲染它?我知道jQuery中有一些.html()方法,但我没有做到:)

P.S。包含jQuery,因为它是一个Rails应用程序。

1 个答案:

答案 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>
  );
}

jsFiddle