首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将状态重置为初始状态?

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

Stack Overflow用户
提问于 2016-12-03 14:04:17
回答 1查看 2.2K关注 0票数 1

我似乎不能重置默认状态;我如何做呢?我尝试过这样做,但它所做的只是将state添加到状态,并将其称为未定义的。

代码语言:javascript
复制
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;
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 14:12:31

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

代码语言:javascript
复制
case types.DELETE_GROUP:
  return initialState;

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

代码语言:javascript
复制
return {
    state: ...
}

这将在您的状态中提供一个名为state的属性,这完全不是您所需要的。

从文件中

还原器是一个纯函数,它接受以前的状态和动作,返回下一个状态。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40948613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档