在React componentDidUpdate中,道具和状态可以同时改变吗?

prm*_*mph 5 javascript components reactjs

在反应组件中,通常你不应该在其中改变道具.此外,父母只能改变道具,而不能直接改变状态.基于这两个事实,假设在componentDidUpdate的任何调用中是正确的,例如,

componentDidUpdate(prevProps:Readonly>,prevState:Readonly)

this.props可能与prevProps不同,或者this.state可能与prevState不同,但这两种情况不能同时发生?

Tom*_*zyk 3

来自反应文档

React 可以将多个 setState() 调用批处理为单个更新以提高性能。

因此,基于此我的最佳猜测是,出于性能原因,React 可能会将 props 和状态更新组合在一起,仅执行一次更新而不是两次。所以回答你的问题:

this.props 可能与 prevProps 不同,或者 this.state 可能与 prevState 不同,但这两种情况不能同时发生?

我认为这实际上可能会像前面所说的那样发生——出于性能原因。