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

时间:2016-12-03 14:04:17

标签: 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;
  }
}

1 个答案:

答案 0 :(得分:4)

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

case types.DELETE_GROUP:
  return initialState;

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

return {
    state: ...
}

这将为您提供州内名为state的财产,但并不是您所需要的。

From the documentation

  

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

很容易对此感到困惑,所以要小心!如果您仍然不太确定,请查看您的default案例:您将旧state变量作为新状态返回,不是 { {1}}您基本上使用当前的{ state: state }处理程序。