为了让孩子们重新回归,我必须重新奉献父母吗?

时间:2017-04-03 08:44:58

标签: reactjs redux immutable.js

我有一个表组件,包含项目列表。 通过更改列表中的项目,我看到整个表格都是重新呈现的。 我试图把shouldComponentUpdate,并返回false我看到Row组件没有被重新呈现。 我是否必须重新渲染父级才能重新呈现子组件?

1 个答案:

答案 0 :(得分:0)

https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate

  

返回false并不会阻止子组件在状态发生变化时重新呈现。

如果子项中的数据作为属性从父项传递,则是,您必须重新呈现父项以重新呈现子项。这样做的原因是,如果你的孩子依赖道具,而父母没有渲染,那么这些道具永远不会为孩子改变,因为它只会在父母呈现时收到改变的道具,并根据自己的状态给出新的道具。或道具。我怀疑这是你的问题。重新渲染父级通常不是React中的性能问题。

如果孩子们有自己的状态正在改变,那么不再重新抚养父母就行了。如果您使用状态容器,另一个选项是connect子项直接到状态,然后当状态容器更新相关状态时它们的道具会更新,但这有点超出了这个问题的范围。

一般情况下,最好不要使用shouldComponentUpdate,除非性能需要它,然后才仔细考虑。