当根组件的状态发生变化时,React.js会重新渲染所有子组件(子组件)吗?
请看一下这个例子: http://jsfiddle.net/F8H7p/8/
在上面的示例中,当Search
组件的状态发生更改时,只有Dashboard
个子组件会重新呈现。但其他子组件 - Section,Chart&小部件不会重新渲染。
这就是我的renderComponent的样子:
React.renderComponent(Dashboard({title: "D", children: [Section({title: "S", children: [Widget({title: "W"}), Chart()]})]}), document.body);
任何想法为什么?
答案 0 :(得分:5)
更新仪表板时,React会重新渲染由仪表板渲染方法创建的每个组件。在这种情况下,您通过this.props.children
传递组件,因此预计它们不依赖于Dashboard的状态,因此它们不会被重新渲染。
如果您的应用不是这种情况,您可能希望创建一个处理此状态的更高级页面组件,并将Dashboard组件及其子项一起呈现。使用该结构,您的renderComponent调用将类似于:
React.renderComponent(Page(), document.body);