React.js:将一个组件包装到另一个组件中

发布于 2021-01-31 23:01:09

许多模板语言都有“ slots”或“ yield”语句,它们允许进行某种形式的控制反转,以将一个模板包装在另一个模板中。

Angular具有“ transclude”选项

Rails有收益声明。如果React.js拥有yield语句,它将看起来像这样:

var Wrapper = React.createClass({
  render: function() {
    return (
      <div className="wrapper">
        before
          <yield/>
        after
      </div>
    );
  }
});

var Main = React.createClass({
  render: function() {
    return (
      <Wrapper><h1>content</h1></Wrapper>
    );
  }
});

所需的输出:

<div class="wrapper">
  before
    <h1>content</h1>
  after
</div>

React,React.js没有<yield/>。如何定义包装器组件以实现相同的输出?

关注者
0
被浏览
103
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    尝试:

    var Wrapper = React.createClass({
      render: function() {
        return (
          <div className="wrapper">
            before
              {this.props.children}
            after
          </div>
        );
      }
    });
    

    有关更多信息,请参见文档中的多个组件:子代子代道具类型



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看