我使用react-router-redux并使用嵌套的connect()ed组件。这似乎工作正常,除了我的嵌套组件在状态更改时重新呈现。
Probs: Root有5个孩子: 如果任何一个子节点发生任何状态更改,则所有组件都将重新呈现,因为所有组件都是connect()ed。
如何只渲染所需的孩子?
(有没有办法使用connectAdvanced生命周期方法来解决这个问题?
答案 0 :(得分:2)
为防止嵌套子项每次在父组件中更改状态时重新呈现,您应该使用shouldComponentUpdate
生命周期。
shouldComponentUpdate
接受2个参数shouldComponentUpdate(nextProps, nextState)
因此,您想要停止重新渲染的任何地方都应该返回false。根据文档“返回false不会阻止子组件在其状态发生变化时重新呈现。”