javascript - 关于 shouldComponentUpdate() 的奇怪问题
问题描述
我不明白 shouldComponentUpdate() 方法如何访问旧状态,据我所知, shouldComponentUpdate() 在道具或状态更改后被触发。
假设您调用 setState() ,之后当前状态将被更改并将更新为新状态。但是即使在将状态更新到最新版本之后也会触发 shouldComponentUpdate()。因此, shouldComponentUpdate() 中的“this.state”如何返回旧状态?
shouldComponentUpdate(nextProps, nextState) {
console.log(this.state); // how can this be old state?
}
有人有想法吗?非常感谢。
解决方案
在组件上的任何内容更新之前调用此生命周期函数,包括响应文档强调的状态。
当接收到新的道具或状态时,应该在渲染之前调用 shouldComponentUpdate()。
所以在shouldComponentUpdate
调用的那一刻,新的状态还没有被应用,this.state
仍然指向旧的状态。
推荐阅读
- gitlab - Tox:本地和 gitlab CI 运行期间的不同测试集
- javascript - Three.js - 为什么 csg.js 不能用于布尔运算?
- linux - Systemctl(?) 杀死分离的屏幕
- microsoft-graph-api - 使用 MS Graph SDK 检索聊天信息和与会者
- python - 在包创建期间安装在 /usr/local/lib/ 的共享库,而在包安装期间安装站点包
- javascript - 在orientationchange之后,clientWidth和innerWidth在iOS Chrome上没有更新
- c++ - 如何使用 RTN_FindByName 查找函数?
- python - 在 Sklearn 中使用 make_column_transformer 的问题
- c# - Xamarin 形式的儿童无法评估
- java - 如何编写向某个变量添加值的方法?爪哇