React Javascript-复制的对象没有任何更改

时间:2019-07-18 20:08:53

标签: javascript reactjs

我目前正在一个项目中,我必须维护一个对象,该对象包含js中较小的对象(集合)的数组。添加和编辑似乎工作正常,但是在尝试从对象中删除时遇到了障碍。

removeCollection(collectionId, index){
    let copyCollectionItems = {...this.state.collectionItems};
    copyCollectionItems[collectionId].splice(index, 1);
    this.setState({ collectionItems: copyCollectionItems});
}

在上面的代码中,调用之前对象的状态类似于:

{ 
collectionId-1: Array(4)[{...}, {...}, {...}, {...}],
collectionId-2: Array(2)[{...}, {...}],
collectionId-3: Array(1)[{...}]
}

假设传入的collectionId是“ collectionId-1”,我希望在调用后对象看起来像这样:

{ 
collectionId-1: Array(3)[{...}, {...}, {...}],
collectionId-2: Array(2)[{...}, {...}],
collectionId-3: Array(1)[{...}]
}

相反,我看到在函数调用之后对象没有任何变化(collectionId-1在数组中仍然有4个对象)。

我复制对象的方式有问题吗?也许参考数据正在覆盖新数据?我不知道为什么对象没有改变。

我还应该补充一点,如果输入的索引为0,则删除成功。任何其他索引都不会更改对象。

0 个答案:

没有答案