【发布时间】:2015-10-21 14:57:58
【问题描述】:
我需要在 React 类中呈现 HTML (JSX) 字符串。我不知道这是否可能。 dangerouslySetInnerHTML 对我无效,因为我在这个文件中有不同的反应组件。它不是纯 HTML。
我有一个预期结果的例子: https://jsfiddle.net/86rg50re/1/
var MyComponent = React.createClass({
propTypes: {
owner: React.PropTypes.string
},
render: function() {
return <div>Congrats {this.props.owner}! you have rendered MyComponent ({this.props.children})</div>;
}
});
var Hello = React.createClass({
render: function() {
return <div>Header <MyComponent owner={"Daniel"}>Yayyyyyy!</MyComponent></div>;
}
});
但我拥有的是这样的:
var Hello = React.createClass({
render: function() {
var content = '<div>Header <MyComponent owner={"Daniel"}>Yayyyyyy!</MyComponent></div>';
return transformStringToJSX(content);
}
显然 transformStringToJSX 不存在。
有没有办法渲染 jsx 字符串?
【问题讨论】:
-
您不能像其他导入一样将文件作为 JavaScript 文件导入并从中引用变量和组件吗?
-
我想这是我最后的选择。我更喜欢另一种选择,因为我只想在该文件中存储 JSX 内容
-
JSX 最终只是 JavaScript。我认为你最好的选择是导出一个瘦包装组件并将其作为 JS 导入。
-
你的意思是使用这个例如:npmjs.com/package/htmltojsx。然后执行生成的js?
-
我假设您的意思是编译时未知的 jsx 文件。如果是这样,您可以预编译外部文件而不是将它们作为 jsx 吗?