在Reactjs中的自定义DOM节点中渲染内部组件

时间:2014-04-29 11:29:49

标签: javascript frontend reactjs react-jsx

考虑以下组件层次结构:

var FundComponent = React.createClass({
    render : function() {
      return (
        <div>
        <UserComponent profile={data} />
        </div>
        );
    }
  });

var UserComponent = React.createClass({
    render : function() {
      return (
        <div>
        Some Stuff goes here
        </div>
        );
    }
  });

React.renderComponent(<FundComponent />, document.getElementById('fund'));

这将在我的HTML中的UserComponent节点内呈现#fund

如何在HTML中的UserComponent节点内的特定节点中呈现fund?例如:

<div id="fund">
<div id="otherStuff">Stuff</div>
<div id="user">**load UserComponentHere**</div>
</div>

2 个答案:

答案 0 :(得分:1)

在阅读了一下后,我发现了如何解决这个问题。随意纠正我。

React对于如何解决此问题有不同的概念。

我们不是在html文件中预先定义html,而是在render函数中定义它,如下所示:

var FundComponent = React.createClass({
    render : function() {
      return (
        <div>
          <div className="myOtherStuff1">
            <OtherComponent1 data={data} />  //other stuff
          </div>
          <div className="user">  //user
            <UserComponent profile={profile} />
          </div>
          <div className="myOtherStuff2">
            //can have component or other static stuff. Upto developer.
          </div>
          ...
        </div>
      );
    }
  });

React.renderComponent(<FundComponent />, document.getElementById('fund'));

html将是: <div id="fund"></div>

然后,我们可以定义UserComponentOtherComponent(s)

答案 1 :(得分:0)

我可能会误解你,但你应该能够做到:

React.renderComponent(<FundComponent />, document.getElementById('user'));

渲染到#user div。