【发布时间】:2021-10-17 08:15:34
【问题描述】:
我正在使用 Redux,并在我拥有的列表中实现了删除功能。
当用户删除一个项目时,我会向 reducer 发送一个delete 调用,这样我就可以从列表中删除已删除的项目。
但是,状态不会更新(该项目仍在数组中)但我不知道为什么。
这就是我发送删除调用的方式:
const onDismiss = useCallback(g => {
console.log(store.getState().reducer.goals);
dispatch(deleteGoal(g.id));
setTimeout(() => {
console.log(store.getState().reducer.goals);
}, 2000);
}, []);
这是 deleteGoal 操作:
export const deleteGoal = (id) => {
return (dispatch) => {
dispatch({
type: ActionType.deleteGoal,
payload: id
})
}
}
这是减速器:
case ActionType.deleteGoal:
return {
...state,
goals: state.goals.filter((goal: any) => goal.id !== action.id)
}
这是初始状态:
const initialState = {
goals: <any>[],
}
【问题讨论】:
-
简单。从 ... !== action.id 更改为 !== action.payload.id
标签: react-native redux