我似乎无法重置默认状态;我怎么做?我尝试了这一点,但它只是将state
添加到状态并将其称为未定义。
const initialState = {
name: null,
coins: 0,
image: null,
};
export default function reducer(state = initialState, action = {}) {
switch (action.type) {
case types.ADD_GROUP_COINS:
return {
...state,
coins: state.coins + action.coins
};
case types.DELETE_GROUP:
return {
state: undefined
};
default:
return state;
}
}
答案 0 :(得分:4)
要将状态重置为initialState
,只需return initialState
,如下所示:
case types.DELETE_GROUP:
return initialState;
请记住,在reducer中,您返回的对象是新状态。你不需要将它包装在另一个对象中,如下所示:
return {
state: ...
}
这将为您提供州内名为state
的财产,但并不是您所需要的。
reducer是一个纯函数,它接受前一个状态和一个动作,返回下一个状态。
很容易对此感到困惑,所以要小心!如果您仍然不太确定,请查看您的default
案例:您将旧state
变量作为新状态返回,不是 { {1}}您基本上使用当前的{ state: state }
处理程序。