我正在试验React.js并且它工作得非常好。我想知道是否有可能将类注入到其他类中:
var Container = React.createClass({
render: function() {
<{this.props.implComponent}/>
}
});
假设已经像这样传递了implComponent:
React.render(
<Container implComponent="somePredefinedVariable" />,
document.getElementById('content')
);
由于语法错误,这不起作用。我很容易理解为什么。
换句话说,我想根据名称将类注入其他类。这可能吗?我怎么能这样做?
答案 0 :(得分:18)
你很亲密。你需要自己传递组件类(而不是字符串),然后因为标签语法已经采用了一个变量,你就摆脱了{}
。也不要忘记从渲染中返回节点。
var Container = React.createClass({
render: function() {
return <this.props.implComponent />
}
});
React.render(
<Container implComponent={SomePredefinedVariable} />,
document.getElementById('content')
);
如果你想传递一个基本的dom组件,你可以使用一个字符串
如果考虑转换结果,这是有道理的
var Container = React.createClass({displayName: "Container",
render: function() {
return React.createElement(this.props.implComponent, null)
}
});
ReactDOM.render(
React.createElement(Container, {implComponent: SomePredefinedVariable}),
document.getElementById('content')
);
ReactDOM.render(
React.createElement(Container, {implComponent: "div"}),
document.getElementById('content')
);