如何将状态重置为初始状态?

Sin*_*met 1 javascript reactjs react-native redux

我似乎无法重置默认状态;我怎么做?我试过这个,但它所做的只是添加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;
  }
}
Run Code Online (Sandbox Code Playgroud)

Aur*_*001 6

要将状态重置为initialState,只需return initialState,如下所示:

case types.DELETE_GROUP:
  return initialState;
Run Code Online (Sandbox Code Playgroud)

请记住,在reducer 中,您返回的对象是新状态。您不需要将其包装在另一个对象中,如下所示:

return {
    state: ...
}
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个state在您所在州调用的属性,这根本不是您所需要的。

从文档

reducer 是一个纯函数,它接受前一个状态和一个动作,并返回下一个状态。

很容易对此感到困惑,所以要小心!default如果您仍然不太确定,请查看您的情况:您将旧state变量作为新状态返回,而不是 { state: state }您实际上对当前DELETE_GROUP处理程序所做的。