即使不可变地更新,状态元素也会在react.js中删除

时间:2019-03-26 11:39:05

标签: javascript reactjs ecmascript-6

我的React主App组件中具有以下状态:

  state = {
    tasks : [],
    tags : [],
    modals : {
      deleteModal : false,
      editmodal   : false,
      addmodal    : false  
    },
    globals : {
      deleteid : null,
      deleteIdx : null,
      edittasktext : null,
      edittaskid : null
    }
  }

当我打开模态时,在下面的函数中编辑状态,就像

_handleEditModalOpen = ( id , text ) => {

    let modals = this.state.modals,
    globals = this.state.globals;

    this.setState({
      modals : {
        ...modals,
        editmodal : true
      },
      globals : {
         ...globals,
         edittaskid : id,
         edittasktext : text 
      }
    });

  }

您可以看到,我上面编辑的所有内容都是全局变量,但是当我在react调试器中检查状态时,发现edittaskidedittasktext都消失了,就像您可以在下面看到,这就是上面函数运行后的状态。

请参见下面的屏幕截图,说明应用加载的时间:

enter image description here

请参见下面的屏幕截图,说明应用程序模式何时打开并运行功能:

enter image description here

为什么我的状态中的元素被抹掉了?

0 个答案:

没有答案