我有一个表单选择,其值为“更改”和“取消”。 每次我选择不同的一个时,我都会console.log“mySelection”的值
handleSelectChange = e => {
var myValue = e.target.value
if (myValue == "change"){
this.setState({selectText: "Change rent date"})
this.setState({selection: "sdsd"})
this.setState({mySelection: "change" }, console.log(this.state.mySelection))
}
if (myValue == "cancel"){
this.setState({selectText: "Cancel a rent"})
this.setState({selection: "bob"})
this.setState({mySelection: "cancel" }, console.log(this.state.mySelection))
}
}
当我选择更改时,它控制台记录取消。当我选择取消时,它控制台记录更改。我以为setState的回调是在状态设置之后发生的?
谢谢
最佳答案
您必须传递一个函数作为setState
的第二个参数
handleSelectChange = e => {
var myValue = e.target.value
if (myValue == "change"){
this.setState({selectText: "Change rent date"})
this.setState({selection: "sdsd"})
this.setState({mySelection: "change" }, () => console.log(this.state.mySelection))
}
if (myValue == "cancel"){
this.setState({selectText: "Cancel a rent"})
this.setState({selection: "bob"})
this.setState({mySelection: "cancel" }, () => console.log(this.state.mySelection))
}
}
关于javascript - setState 的回调是否在(同步)状态设置后发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55529178/