如何在Reactor的reducer状态中添加和删除项目

Sun*_* tc 2 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Min*_*oon 5

您可以使用以下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;
  }
}
Run Code Online (Sandbox Code Playgroud)