下面是我的代码段
this.setState({
isConfirmationDialogOpen: false,
progress: Progress.Saving
});
let state = { ...this.state };
但是它没有更新状态,有人可以告诉我我在做什么错。
this.setState({
isConfirmationDialogOpen: false,
progress: Progress.Saving
}, (newState) => {
console.log(newState);
});
this.setState是异步的。您将在回调中获得更新状态。
this.setState({
isConfirmationDialogOpen: false,
progress: Progress.Saving
});
let stateData = { ...this.state };
donot use the same name as state, aslo callback method in setState can be used to perform async activities
首先,this.setState是异步的。
setState()的第二个参数是可选的回调函数,将在setState完成并重新呈现组件后执行。
如果您试图访问状态并想要更新的状态,则由于它是异步的,因此您必须在回调函数中“必须”访问它,以确保仅在状态更新后才能访问它。