Reactjs:为什么子组件在数据变化时不重新渲染
Reactjs: Why child components aren't re-rendering on data change?
当根组件的状态改变时,React.js应该重新渲染所有子组件(子)?
请看这个例子:http://jsfiddle.net/F8H7p/8/
在上面的例子中,当Dashboard
组件的状态改变时,只有Search
子组件重新呈现。但是其他子组件- Section, Chart &小部件不重新渲染。
这是我的renderComponent的样子:
React.renderComponent(Dashboard({title: "D", children: [Section({title: "S", children: [Widget({title: "W"}), Chart()]})]}), document.body);
知道为什么吗?
当你更新Dashboard时,React会重新渲染由Dashboard render方法创建的每个组件。在这种情况下,你通过this.props.children
传递组件,所以预计它们不依赖于Dashboard的状态,所以它们不会被重新渲染。
如果你的应用不是这种情况,你可能想要创建一个更高级的Page组件来处理这种状态,并呈现Dashboard组件及其子组件。有了这个结构,你的renderComponent调用就会像这样:
React.renderComponent(Page(), document.body);
相关文章:
- 如何强制对模态进行新渲染
- 如何在渲染新视图之前关闭所有事件
- 扩展成员应用程序,包括新的路线,现在没有任何渲染
- React选择性地不将新道具传递给渲染对象
- ajax重新渲染时获得新值
- React 组件渲染在推送新 URL 时被多次调用
- 主干(也是木偶)尝试在集合开始时显示新记录,而不重新渲染整个集合
- 如何使用布局管理器重新排序/排序嵌套视图而不重新渲染
- 在backbone.js中,如何使用新的模型数据更新视图,同时在没有完整渲染的情况下保持排序顺序
- d3.js树映射新数据;t渲染
- 让流星重新渲染“;新文档”;
- 不要在新页面加载或刷新时渲染React组件
- 加载/渲染一个新的基于平铺的地图到HTML5画布,替换一个旧的地图
- 如果在素数面数据表中添加新行,如何检测表单中的变化
- 谷歌地图v3方向渲染器重新绘制响应
- 美元AngularJs http.post不渲染新视图
- 文本不被渲染后,新的页面加载- JQuery移动
- 如何在React 0.14中使用新道具在顶层再次渲染组件
- 关注标签触发模糊事件后新渲染的文本输入
- 使用ngreact在角度数据变化上渲染组件