如何正确设置状态为对象数组?

时间:2019-12-16 21:35:30

标签: javascript arrays reactjs

我有一个数组ob对象,它们根据有多少个按钮来创建Close按钮。当我单击Close按钮时,我希望数组进行更新(删除),然后按钮元素将从屏幕上消失。

我在console.log中锻炼过,但无法正确执行setState :(

此处的示例代码:https://codesandbox.io/s/sharp-kilby-hn2d9

任何帮助将不胜感激,我相信这只是setState的格式,我需要正确地执行它,但是因为它包含对象的数组等等,所以我无法弄清楚。

1 个答案:

答案 0 :(得分:-1)

这是重写的handleclick函数,您忘记了根据需要对其进行修改后的状态:

  handleClick = i => {
    this.setState(state => {
      var newState = {allProjects: []};
      for (let z = 0; z < state.allProjects.length; z++) {
        const element = state.allProjects[z].employees;
        const items = element.filter(item => item !== i);
        console.log('filter', items);
        console.log('===========');
        newState.allProjects[z] = Object.assign({}, state.allProjects[z]);
        newState.allProjects[z].employees = items;
      }
      return newState;
    });
  };