我正在尝试使用 setState 从数组中删除一个(半)深度嵌套的项目,但它似乎不起作用。我的状态结构如下:
state = {
currentSeries: null,
currentRowIndex: null,
rows: [
{
id: shortid.generate(),
nodes: [],
series: [], // array with item I want to remove
},
],
};
和我的删除项目调用:
onRemoveModelElementClick = (rowId, modelElementId) => {
this.setState((prevState) => {
const index = prevState.rows.findIndex(x => x.id === rowId);
const series = prevState.rows[index].series.filter(s => s.id !== modelElementId);
return series;
});
};
我尝试通过多种方式传播剩余状态,但似乎无法正确更新。我的 rowId 和 modelElementId 是正确的,我可以验证它们确实过滤掉了正确的项目。我只是在返回什么方面遇到了麻烦。我知道这很简单,但对于我的生活,我看不到它。