我想在react应用程序中实现一个简单的撤销/重做功能。为此,我正在努力跟踪这个州的情况。
反应状态:
state = {
schedule : [],
loads:[],
undo:[],
redo:[]
};但是,当我尝试更新undo[]时,它总是在第一个触发器中打印一个空数组,从第二次开始添加项目。试图找出为什么它不更新undo[]数组的第一步。
const redoUndoObj ={
oldStateSchedule : this.state.schedule,
oldStateLoads : this.state.loads
}
this.setState({ undo : this.state.undo.concat(redoUndoObj)});
console.log(this.state.undo);//print [] at first run发布于 2020-11-23 05:41:14
您将在setState的回调中获得更新的状态,如以下所示:
this.setState({
undo : this.state.undo.concat(redoUndoObj)
}, () => console.log(this.state.undo));https://stackoverflow.com/questions/64963051
复制相似问题