如何根据已记忆的父组件状态防止子组件中不必要的重新渲染
How to prevent unecessary rerenders in child components dependent on memoized parent component state
App
具有计算记忆值的状态,该状态作为道具传递给 Option
s。当状态由于传递给 Option
的回调而改变时,App
被重新渲染,导致
- 重新渲染所有
Option
s
SomeComponent
的重新渲染,它甚至不需要任何道具
我正在寻找一种使用 React 挂钩和状态管理的模式,它只允许重新呈现 Option
中的 2 个 - 取消选择的那个,因为它 isSelected
属性由真变假,被选中的那个,因为它的isSelected
属性由假变真。我不明白为什么其他子组件,特别是 SomeComponent
,在它们的 props 没有改变时需要重新渲染。
这通常是通过 React.memo 完成的,以使渲染的组件仅依赖于它们的 props 而不是 re-render,除非它们的 props 发生变化。
App
具有计算记忆值的状态,该状态作为道具传递给 Option
s。当状态由于传递给 Option
的回调而改变时,App
被重新渲染,导致
- 重新渲染所有
Option
s SomeComponent
的重新渲染,它甚至不需要任何道具
我正在寻找一种使用 React 挂钩和状态管理的模式,它只允许重新呈现 Option
中的 2 个 - 取消选择的那个,因为它 isSelected
属性由真变假,被选中的那个,因为它的isSelected
属性由假变真。我不明白为什么其他子组件,特别是 SomeComponent
,在它们的 props 没有改变时需要重新渲染。
这通常是通过 React.memo 完成的,以使渲染的组件仅依赖于它们的 props 而不是 re-render,除非它们的 props 发生变化。