Javascript React componentDidUpdate:检查是状态还是道具更改导致了更新?

Javascript React componentDidUpdate:检查是状态还是道具更改导致了更新?,javascript,reactjs,react-redux,memoization,Javascript,Reactjs,React Redux,Memoization,我有一个列表组件,其中包含许多来自Redux商店道具的条目。这些条目被转换和过滤,并进入componentdiddupdate中的状态。但当组件的内部状态发生变化时,也会调用此函数 所以我现在正在检查每个状态的变化,如果道具的条目发生了变化。这对我来说似乎很不必要,因为有时只有一个条目是不同的,整个列表需要与前一个进行比较 我怎样才能拥有像componentdiddupdate这样的道具呢? 我想用它,但它说 这种方法适用于状态取决于道具随时间变化的罕见用例 这对我的用例不是很好吗?我只是不认为

我有一个列表组件,其中包含许多来自Redux商店道具的条目。这些条目被转换和过滤,并进入
componentdiddupdate
中的状态。但当组件的内部状态发生变化时,也会调用此函数

所以我现在正在检查每个状态的变化,如果道具的条目发生了变化。这对我来说似乎很不必要,因为有时只有一个条目是不同的,整个列表需要与前一个进行比较

我怎样才能拥有像
componentdiddupdate
这样的道具呢?

我想用它,但它说

这种方法适用于状态取决于道具随时间变化的罕见用例

这对我的用例不是很好吗?我只是不认为它是罕见的

然后他们开始解决这类问题。但据我所知,记忆化框架仍然需要检查道具的差异。

您可以使用它来比较道具

使用shouldComponentUpdate()告知React组件的输出是否不受当前状态或道具更改的影响。默认行为是在每次状态更改时重新渲染,在绝大多数情况下,您应该依赖默认行为

当出现新的道具或属性时,应在呈现之前调用shouldComponentUpdate() 国家正在接受。默认为true。不调用此方法 用于初始渲染或使用forceUpdate()时

shouldComponentUpdate()在装载周期完成后调用,而不是在第一次呈现时调用
componentWillMount()在呈现之前调用

如果您正在检查道具的更改,请选择React.PureComponent。React将为您处理道具检查。