【发布时间】:2021-08-05 20:50:11
【问题描述】:
我正在尝试在功能组件中实现 shouldComponentUpdate 方法。
这里是原始方法(classfull组件)
shouldComponentUpdate(nextProps, nextState) {
return (
this.state.isSelected || nextState.isSelected !== this.state.isSelected
);
}
但是,使用 React 备忘录,我似乎只能访问 prevProps 和 nextProps,而不是 nextState。
memo(..., (prevProps, nextProps) => true);
如何在功能组件中访问 nextState 来模拟 shouldComponentUpdate?
【问题讨论】:
-
所以基本上,那个条件是说:如果当前的
isSelected是true,总是重新渲染。如果是false,只有在变成true时才重新渲染? -
条件是什么?所以组件应该在
this.state.isSelected为真并且状态发生任何变化时更新(nextState.isSelected !== this.state.isSelected)?您可以将isSelected放在useEffect的dep 数组中,应该没问题。
标签: javascript reactjs react-native