reactjs - setState 没有更新 React 中的设置值
问题描述
这是我尝试更新状态值的代码。我无法弄清楚为什么我的状态没有更新。我在每一行代码中添加了所有相应的控制台值。
handleFilter=(event)=>
{
console.log(this.state.answerStatus) // Before update 'all'
let val= event.target.value === "answered";
console.log(val); // true or false
this.setState({answerStatus:val});
console.log(this.state.answerStatus); // 'all'
}
解决方案
在 ReactsetState
中是异步的,这意味着状态值不会在您调用后立即修改setState
,这就是您从 console.log 获取旧值的原因。
为什么 reactjs Async 中的 setState 而不是 Sync?
handleFilter = (event) => {
console.log(this.state.answerStatus) // Before update 'all'
let val= event.target.value === "answered";
console.log(val); // true or false
this.setState({answerStatus:val}, () => {
console.log(this.state.answerStatus);
});
}
推荐阅读
- java - 在循环中创建对象并添加到列表
- javascript - 点击事件后调用 slick
- powershell - 将文件从一个位置移动到另一个位置并排除子文件夹
- c# - 我在代码中收到 DesiredCapabilities for Chrome 已过时的错误消息
- android - java.lang.UnsatisfiedLinkError:dlopen 失败:unknow reloc type35 @8dc77fd4
- android - Kotlin:如何检查具有lateinit属性的变量是否已初始化
- python-3.x - 从多个数据框中选择数据
- angular - 测试台:为什么注入默认类而不是我的间谍
- php - Doctrine 编译错误:void 函数不得返回值
- python-3.x - Tkinter 应该在单独的 python 文件中还是可以在相同的代码中?