首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新处于反应状态的数组不起作用

更新处于反应状态的数组不起作用
EN

Stack Overflow用户
提问于 2020-11-23 05:36:12
回答 1查看 51关注 0票数 0

我想在react应用程序中实现一个简单的撤销/重做功能。为此,我正在努力跟踪这个州的情况。

反应状态:

代码语言:javascript
复制
  state = {
        schedule : [],
        loads:[],
        undo:[],
        redo:[]
    };

但是,当我尝试更新undo[]时,它总是在第一个触发器中打印一个空数组,从第二次开始添加项目。试图找出为什么它不更新undo[]数组的第一步。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-23 05:41:14

您将在setState的回调中获得更新的状态,如以下所示:

代码语言:javascript
复制
this.setState({ 
  undo : this.state.undo.concat(redoUndoObj)
}, () => console.log(this.state.undo));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64963051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档