我有两种安排所代表的状态。在某些事件中,我必须更新其中之一。状态更新功能实际上已执行,但是状态不会更改,在调用之前,它保持相同的值。当我刷新页面时会发生状态更新,但是在调用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
};
});
};
您分配了错误的变量。您所在的州有
{listaSensor, listaNivel, sum}
但是当您使用setState时,返回对象是
{
list,
listaSensor,
sum
}
看到区别。
问题是国家回归的方式。正确的方法是:
返回{LevelList:LevelList,SensorList:SensorList,总和:总和};