繁体   English   中英

如何防止依赖于 memoized 父组件的子组件发生不必要的重新渲染 state

[英]How to prevent unecessary rerenders in child components dependent on memoized parent component state

链接到沙箱

App有 state,从中计算出一个记忆值,该值作为道具传递给Option s。 当 state 由于传递给Option的回调而改变时, App被重新渲染,导致

  1. 所有Option的重新呈现
  2. SomeComponent的重新渲染,它甚至不需要任何道具

我正在寻找一种使用 React 钩子和 state 管理的模式,它只允许重新呈现Option中的 2 个 - 一个被取消选择,因为它的isSelected属性从 true 变为 false,另一个被选中,因为它的isSelected属性从 false 变为 true。 我不明白为什么其他子组件,尤其是SomeComponent需要重新渲染,而它们的道具没有改变。

这通常是通过 React.memo 完成的,以使渲染的组件仅依赖于它们的道具,除非它们的道具发生变化,否则不会重新渲染。

参见: https://reactjs.org/docs/react-api.html#reactmemo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM