如何重置ngrx / store的所有状态?

Hongbo Miao

我正在使用Angular 2和ngrx / store我想在用户派遣时重置整个商店状态USER_LOGOUT

我阅读了Dan Abramov关于如何重置Redux存储状态的答案,但rootReducer在使用ngrx / store时我不知道如何正确编写以及将其放置在何处。

还是有其他方法可以在ngrx / store中处理此问题?

bootstrap(App, [
    provideStore(
      compose(
        storeFreeze,
        storeLogger(),
        combineReducers
      )({
        router: routerReducer,
        foo: fooReducer,
        bar: barReducer
      })
    )
  ]);
卡坦

该答案特定于ngrx版本2。该问题还有另一个更新的答案,该答案说明了如何使用ngrx版本4可以完成相同的操作。


compose构建ngrx根减少器

传递给参数compose的函数是返回reducer的函数-由reducer组成,它们本身作为参数传递。您可以像下面这样组成商店的重置:

import { compose } from "@ngrx/core/compose";

...

bootstrap(App, [
  provideStore(
    compose(
      storeFreeze,
      storeLogger(),
      (reducer: Function) => {
        return function(state, action) {
          if (action.type === 'USER_LOGOUT') {
            state = undefined;
          }
          return reducer(state, action);
        };
      },
      combineReducers
    )({
      router: routerReducer,
      foo: fooReducer,
      bar: barReducer
    })
  )
]);

请注意,这将重置商店的所有状态-包括router如果这不是您想要的,则可以调整示例。

随着NgModule引导程序的引入已经发生了变化,但是您仍然可以将组成的reducer传递给provideStore

import { compose } from "@ngrx/core/compose";
import { StoreModule } from "@ngrx/store";

@NgModule({
    ...
    imports: [
        ...
        StoreModule.provideStore(compose(...))
    ],
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何重置包括所有传递可到达状态的反应组件?

来自分类Dev

如何在所有浏览器会话(选项卡)中重置Redux状态

来自分类Dev

从@ reduxjs / toolkit使用configureStore时如何重置Redux Store的状态?

来自分类Dev

如何重置所有已删除的文件

来自分类Dev

如何重置所有iptables设置?

来自分类Dev

如何重置所有主题

来自分类Dev

如何重置所有亮度修改?

来自分类Dev

如何重置所有亮度修改?

来自分类Dev

如何使用componentDidMount重置状态?

来自分类Dev

Swiftui:如何重置布尔状态?

来自分类Dev

如何重置反应钩子状态?

来自分类Dev

如何获取持有状态的“ activeCat”对象的所有信息?

来自分类Dev

重置所有状态后,有什么方法可以调用useEffect挂钩

来自分类Dev

如何使用Angular UI Router解析所有状态的数据?

来自分类Dev

如何枚举8谜题中的所有状态?

来自分类Dev

如何强制状态服务器放弃所有会话?

来自分类Dev

如何保存-恢复所有opengl状态变量

来自分类Dev

如何杀死处于“已接受”状态的所有纱线应用

来自分类Dev

如何使用检查元素工具更改所有显示状态?

来自分类Dev

如何在我所有组件之间共享状态?

来自分类Dev

如何获取电源外壳中所有容器管道的状态?

来自分类Dev

如何使网站状态可用于所有平台

来自分类Dev

如何保存-恢复所有opengl状态变量

来自分类Dev

如何跟踪esper查询状态和所有窗口事件?

来自分类Dev

如何杀死处于“已接受”状态的所有纱线应用

来自分类Dev

如何从张量流中的双向rnn获取所有状态

来自分类Dev

如何更改所有状态的背景色调?

来自分类Dev

如何在 Keras 摘要中显示所有 LSTM 状态?

来自分类常见问题

如何在NgRx中推送或更新状态?

Related 相关文章

  1. 1

    如何重置包括所有传递可到达状态的反应组件?

  2. 2

    如何在所有浏览器会话(选项卡)中重置Redux状态

  3. 3

    从@ reduxjs / toolkit使用configureStore时如何重置Redux Store的状态?

  4. 4

    如何重置所有已删除的文件

  5. 5

    如何重置所有iptables设置?

  6. 6

    如何重置所有主题

  7. 7

    如何重置所有亮度修改?

  8. 8

    如何重置所有亮度修改?

  9. 9

    如何使用componentDidMount重置状态?

  10. 10

    Swiftui:如何重置布尔状态?

  11. 11

    如何重置反应钩子状态?

  12. 12

    如何获取持有状态的“ activeCat”对象的所有信息?

  13. 13

    重置所有状态后,有什么方法可以调用useEffect挂钩

  14. 14

    如何使用Angular UI Router解析所有状态的数据?

  15. 15

    如何枚举8谜题中的所有状态?

  16. 16

    如何强制状态服务器放弃所有会话?

  17. 17

    如何保存-恢复所有opengl状态变量

  18. 18

    如何杀死处于“已接受”状态的所有纱线应用

  19. 19

    如何使用检查元素工具更改所有显示状态?

  20. 20

    如何在我所有组件之间共享状态?

  21. 21

    如何获取电源外壳中所有容器管道的状态?

  22. 22

    如何使网站状态可用于所有平台

  23. 23

    如何保存-恢复所有opengl状态变量

  24. 24

    如何跟踪esper查询状态和所有窗口事件?

  25. 25

    如何杀死处于“已接受”状态的所有纱线应用

  26. 26

    如何从张量流中的双向rnn获取所有状态

  27. 27

    如何更改所有状态的背景色调?

  28. 28

    如何在 Keras 摘要中显示所有 LSTM 状态?

  29. 29

    如何在NgRx中推送或更新状态?

热门标签

归档