重新渲染父母的孩子的逻辑,每秒更新多个时间

时间:2018-07-19 11:30:32

标签: reactjs

所以我有一个组件,该组件的状态由一个子元素每秒更新多次。

为防止过度渲染,我在其他子项上使用了shouldComponentUpdate,以确保它们不会过度渲染。

树的下一个子节点需要更新状态的元素。

我只希望重新渲染该子元素,而不希望中间孩子再次渲染,以免过度渲染。

那怎么办?

1 个答案:

答案 0 :(得分:1)

  

我只希望重新渲染该子元素,而不希望中间孩子再次渲染,以避免过度渲染。怎么会这样呢?

您不能通过将状态传递为道具的传统方法。父组件中状态的更改无法在不首先在子组件B上触发重新渲染的情况下触发对子组件C的重新渲染。

对于要更新子代的组件,它需要经历其生命周期,然后才能向其传递新的道具。

据我所知,解决此问题的唯一方法是使用状态管理库(例如Redux或MobX),或使用React Context API并将状态变量移到那里,然后将其“消费”到您的子级组件中

话虽这么说,除非您的树深了多个层次并且没有看到任何性能问题,否则我会考虑像您已经在使用的那样继续使用shouldComponentUpdate()