不正确的数组索引正在删除react / redux

时间:2019-05-15 21:42:21

标签: reactjs redux

我正在react / redux应用程序中构建购物车,无法从我的数组中删除商品。

这是我现在拥有的代码。

case REMOVE_ITEM:
    const cloned_array = state.items.slice()

    cloned_array.splice(action.payload, 1)

    return { ...state, items: cloned_array }

我正在尝试在状态内克隆项目数组。然后在我的action.payload中将该数组与索引一起发送给reducer。然后返回状态,并将items数组设置为clonedArray。

这导致我的items数组中的第一项被删除,而不是位于发送到reducer的索引中的项。

1 个答案:

答案 0 :(得分:1)

您可以使用.filter()通过一种方法来执行此操作。它达到了.slice想要达到的相同目标,但是现在您无需将切片的输出保存在单独的数组中。

case REMOVE_ITEM:
   return {
    ...state,
    items: state.items.filter((item, index, array) => {
       return index !== action.payload
    })
   }