Redux:从数组中删除特定元素时,它会删除最后一个元素

时间:2017-07-30 14:08:32

标签: javascript arrays reactjs redux react-redux

我试图从状态中删除元素'通过使用过滤器功能,该功能应该从“状态”中删除元素。由' action.index'指定的索引处的数组。但是它会从“状态”中删除最后一个元素。数组,我似乎无法弄清楚它为什么要这样做。

/reducer.js

import {
    ADD_ITEM,
    DELETE_ITEM,
} from './actions';

export default function addItems(state=[], action){
  switch (action.type) {
    case ADD_ITEM:
      return [
        ...state,
        action.item
      ]
    case DELETE_ITEM:
      return state.filter((_, i) => i !== action.index);
    default:
      return state
  }
}

修改

上面的代码运行正常,另一个文件中的问题是从数组中删除了最后一个元素。

1 个答案:

答案 0 :(得分:1)

您可以使用splice代替过滤器,这样可以更精确地删除特定索引处的项目。

return state.splice(action.index,1)

第二个参数'1'表示从action.index开始删除1个项目。