下面是我的代码段
this.setState({
isConfirmationDialogOpen: false,
progress: Progress.Saving
});
let state = { ...this.state };
但是它没有更新状态,有人可以告诉我我做错了吗。
答案 0 :(得分:0)
this.setState({
isConfirmationDialogOpen: false,
progress: Progress.Saving
});
let stateData = { ...this.state };
请勿使用与状态相同的名称,也可以使用setState
中的回调方法来执行异步活动。
更新
如果您不想使用此回调,这是另一种方式。
const state = {
isConfirmationDialogOpen: false,
progress: Progress.Saving
};
this.setState(state);
并使用state
对象,但这不能保证您具有最新状态,即this.state
答案 1 :(得分:0)
首先,this.setState是异步的。
setState()的第二个参数是可选的回调函数,将在setState完成并重新渲染组件后执行。
如果您尝试访问状态并希望更新状态,则由于它是异步的,因此您必须在回调函数中“必须”访问它,以确保仅在状态更新后才能访问状态。