我想知道您是否可以在可能的情况下帮助我。我正在尝试从Redux状态删除一个项目。我已经将用户单击通过的项目的ID传递action.data到化简器中。
action.data
我想知道如何action.data在Redux状态下将ID与ID之一匹配,然后从数组中删除该对象?我还想知道删除单个对象后再设置新状态的最佳方法吗?
请参见下面的代码:
export const commentList = (state, action) => { switch (action.type) { case 'ADD_COMMENT': let newComment = { comment: action.data, id: +new Date }; return state.concat([newComment]); case 'DELETE_COMMENT': let commentId = action.data; default: return state || []; } }
只需过滤评论:
case 'DELETE_COMMENT': const commentId = action.data; return state.filter(comment => comment.id !== commentId);
这样,您将不会更改原始state数组,但会返回不包含具有id的元素的新数组commentId。
state
commentId
为了更简洁:
case 'DELETE_COMMENT': return state.filter(({ id }) => id !== action.data);