【发布时间】:2016-09-21 09:45:56
【问题描述】:
我想将来自某个外部源的纯 HTML 渲染到 react 组件中。我看到人们谈论一些转换工具(HTML 到 JSX)的解决方案很少,但我想处理我的组件中的所有内容,因此在安装它时会获得 HTML 响应并需要渲染。
【问题讨论】:
标签: node.js reactjs react-native
我想将来自某个外部源的纯 HTML 渲染到 react 组件中。我看到人们谈论一些转换工具(HTML 到 JSX)的解决方案很少,但我想处理我的组件中的所有内容,因此在安装它时会获得 HTML 响应并需要渲染。
【问题讨论】:
标签: node.js reactjs react-native
您可以为此使用dangerouslySetInnerHTML:
function createMarkup() { return {__html: 'First · Second'}; };
<div dangerouslySetInnerHTML={createMarkup()} />
但正如方法名称所暗示的那样:您应该非常确定自己在其中做什么以及它所具有的安全隐患。
【讨论】:
这应该不难做到。将您的 HTML 分配给一个 div,然后使用 {variable name} 渲染它 JSX 允许您这样做,并且通过 ES6 集成,您还可以使用 class 而不是 className。
var Hello = React.createClass({
render: function() {
var htmlDiv = <div>How are you</div>
return <div>Hello {this.props.name}
{htmlDiv}
</div>;
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
【讨论】: