所以我有减速器autocomplete
,它存储了react-select
加载的所有选项。我也有两个组成部分-<Parent />
和<Modal />
。他们两个都连接到redux状态以接收autocomplete
道具,因为它们都有自己的<AsyncSelect />
组件。
Select
是<Parent />
组件的子代,它从减速器autocomplete.labels
接收选项。第二个Select
组件是<Modal />
的子组件,它从减速器中接收选项:autocomplete.differentLabels
。
现在,当我使用Select
的子级Modal
时,即使没有依赖于Parent
的jsx,也会重新渲染整个autocomplete
组件。这是预期的行为吗?由于重新渲染,性能下降。
也许我应该将labels
和differentLabels
分成单独的减速器?
答案 0 :(得分:0)
一种可能的解决方案是使用shouldComponentUpdate将当前道具与以前的道具进行比较,并在其中做一些逻辑以防止不必要的更新。
shouldComponentUpdate(nextProps, nextState) {
if (this.props.myProp !== nextProps.myProp) {
// Your logic
return false;
}
return true;
}