对于以列表表示的状态,反应状态保持不变

问题描述 投票:0回答:2

我有两种安排所代表的状态。在某些事件中,我必须更新其中之一。状态更新功能实际上已执行,但是状态不会更改,在调用之前,它保持相同的值。当我刷新页面时会发生状态更新,但是在调用SetState的事件发生时不会发生。

 onUpdateNivel = (pos, level) => {
    this.setState(state => {           
      const listaSensor = state.listaSensor;    
      const list = state.listaNivel.map((item, j) => {
        if (j === pos) {
          return level;
        } else {
          return item;
        }
      });
      var sum = 0;
      for (var i = 0; i < list.length; i++) {
        sum = sum + list[i];
      }          
      return {
        list,
        listaSensor,
        sum
      };
    });
  };
reactjs
2个回答
0
投票

您分配了错误的变量。您所在的州有

{listaSensor, listaNivel, sum}

但是当您使用setState时,返回对象是

      {
        list,
        listaSensor,
        sum
      }

看到区别。


0
投票

问题是国家回归的方式。正确的方法是:

返回{LevelList:LevelList,SensorList:SensorList,总和:总和};

© www.soinside.com 2019 - 2024. All rights reserved.