首页 > 解决方案 > 关于 shouldComponentUpdate() 的奇怪问题

问题描述

我不明白 shouldComponentUpdate() 方法如何访问旧状态,据我所知, shouldComponentUpdate() 在道具或状态更改后被触发。

假设您调用 setState() ,之后当前状态将被更改并将更新为新状态。但是即使在将状态更新到最新版本之后也会触发 shouldComponentUpdate()。因此, shouldComponentUpdate() 中的“this.state”如何返回旧状态?

shouldComponentUpdate(nextProps, nextState) {
   console.log(this.state); // how can this be old state?
}

有人有想法吗?非常感谢。

标签: javascriptreactjsreact-lifecycle-hooks

解决方案


在组件上的任何内容更新之前调用此生命周期函数,包括响应文档强调的状态。

当接收到新的道具或状态时,应该在渲染之前调用 shouldComponentUpdate()。

所以在shouldComponentUpdate调用的那一刻,新的状态还没有被应用,this.state仍然指向旧的状态。


推荐阅读