【发布时间】:2019-01-28 05:25:15
【问题描述】:
如果monthOffset = 12,条件将评估为真,如果yearOffset = 2018,则将yearOffset 状态更新为2017。根据我阅读的反应文档和其他答案,this.setState 中的回调函数在状态更新后触发,但console.log() 仍在输出 2018。我尝试了几种不同的方法来实现此代码基于其他相关问题的答案,但我的不起作用。我不知道为什么。
handleClick(e) {
const { monthOffset, yearOffset } = this.state
this.setState({ monthOffset: monthOffset - 1 })
if ( monthOffset - 1 === 11 ) { this.setState((prevState) => {
return { yearOffset: prevState.yearOffset - 1 } },
() => {console.log("yearOffset", yearOffset)}
)}
console.log("clicked")
}
【问题讨论】:
-
您是否尝试过在 setState 回调中使用
console.log("yearOffset", yearOffset)而不是匿名函数?
标签: javascript reactjs setstate