使用其名称来响应渲染组件

2024-04-10

我正在试验 React.js,它运行得非常好。我想知道是否可以将类注入到其他类中,如下所示:

var Container = React.createClass({
    render: function() {
      <{this.props.implComponent}/>
    }
});

假设 implComponent 已经这样传递:

React.render(
  <Container implComponent="somePredefinedVariable" />,
   document.getElementById('content')
);

由于语法错误,这不起作用。我很容易理解为什么。

换句话说,我想根据名称将类注入到其他类中。这可能吗?我怎样才能做到这一点?


你很接近。您需要传递组件类本身(而不是字符串),然后因为标记语法已经接受一个变量,所以您摆脱了{}s。另外不要忘记从渲染中返回节点。

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')
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用其名称来响应渲染组件 的相关文章

随机推荐