我似乎不能重置默认状态;我如何做呢?我尝试过这样做,但它所做的只是将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;
}
}发布于 2016-12-03 14:12:31
要将状态重置为initialState,只需使用return initialState,如下所示:
case types.DELETE_GROUP:
return initialState;记住,在还原器中,返回的对象是新的状态。您不需要将其包装在另一个对象中,如下所示:
return {
state: ...
}这将在您的状态中提供一个名为state的属性,这完全不是您所需要的。
还原器是一个纯函数,它接受以前的状态和动作,返回下一个状态。
很容易对此感到困惑,所以要小心!如果您仍然不太确定,请查看您的default情况:您将旧的state变量作为新的状态返回,而不是 { state: state },这实际上是使用当前的DELETE_GROUP处理程序所做的。
https://stackoverflow.com/questions/40948613
复制相似问题