Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确设置对象数组的状态?_Javascript_Arrays_Reactjs - Fatal编程技术网

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

Javascript 如何正确设置对象数组的状态?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一个ob对象数组,它根据按钮的数量创建Close按钮。当我点击Close按钮时,我希望数组被更新(删除),然后按钮元素将从屏幕上消失 我在控制台中进行了计算。log但无法正确执行设置状态:( 此处的示例代码: 如果您能提供任何帮助,我将不胜感激,我相信这只是我需要正确设置setState的格式,但因为它包含一个对象数组等等,所以我无法理解它。这是您重新编写的handleclick函数,您在根据需要修改后忘记了在最后返回状态: handleClick = i => { thi

我有一个ob对象数组,它根据按钮的数量创建
Close
按钮。当我点击
Close
按钮时,我希望数组被更新(删除),然后按钮元素将从屏幕上消失

我在
控制台中进行了计算。log
但无法正确执行设置状态:(

此处的示例代码:


如果您能提供任何帮助,我将不胜感激,我相信这只是我需要正确设置setState的格式,但因为它包含一个对象数组等等,所以我无法理解它。

这是您重新编写的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;
    });
  };
handleClick=i=>{
this.setState(state=>{
var newState={allProjects:[]};
for(设z=0;zitem!==i);
console.log('filter',项);
console.log('================');
newState.allProjects[z]=Object.assign({},state.allProjects[z]);
newState.allProjects[z]。employees=items;
}
返回新闻状态;
});
};

请将您的代码放在您的问题中,不要链接到外部站点。或者,如果您愿意。Emile我尝试过,但失败了,我认为我只是错误地编写了setState。这会改变当前状态,这在React中是禁止的。您应该通过删除“返回状态”来亲自尝试最后,意识到它不会改变当前状态,否则返回语句就不需要了。还是我错了?
state.allProjects[z].employees=items
会改变你正在使用的
状态
引用。哦,的确,我做了更正。Emile,现在可以了吗?