如何添加&从反应中的减速器状态中删除项目

时间:2017-03-03 11:53:36

标签: reactjs redux

这是我的减速机。我想在没有重复的情况下向我的数据中添加新数据。 但是在添加新数据时,我正在获得重复数据。而且我想删除基于ID的数据。

任何人都可以帮助我。

如何更新数据?

export  const dataReducer = (state= InitialState , action = null) => {
    switch(action.type) {
    case types.ADD_DATA:
        return Object.assign({}, state, {data:[...state.data, action.payload]});
    case types.REMOVE_DATA:
        return Object.assign({}, state, {data:[]});
    default:
    return state;
    }
}

1 个答案:

答案 0 :(得分:4)

您可以使用filter方法:

export const dataReducer = (state = InitialState, action = null) => {
  switch(action.type) {
    case types.ADD_DATA:
      return Object.assign({}, state, {
        data: [
          ...(state.data.filter(item => (item.id !== action.payload.id))), 
          action.payload
        ]
      });
    case types.REMOVE_DATA:
      return Object.assign({}, state, {
        data: [
          ...(state.data.filter(item => (item.id !== action.payload.id))), 
        ]});
    default:
      return state;
  }
}