我正在使用Angular 5 + NgRx开发应用程序。我安装了浏览器扩展Redux DevTools(适用于Chrome和Firefox)。但是这两个扩展都被禁用(图标为灰色且不显示商店历史记录)
我的应用程序有几个模块,它们是异步加载的。 主app.module.ts包含此代码
StoreModule.forRoot({
user: userReducer
})
,另一个模块有这个
StoreModule.forFeature('dashboard', dashboardReducer),
StoreModule.forFeature('globalSettings', globalSettingsReducer),
StoreModule.forFeature('userInfo', userSettingsReducer),
结果是Redux DevTools扩展被禁用。控制台中未报告任何相关错误。我究竟做错了什么?我无法让它工作,我感到沮丧。
当我将其更改为此(显然是错误的)代码时,有趣的是DevTools再次开始工作,但其他事情已经破坏(如预期的那样)
StoreModule.forRoot({
'dashboard': dashboardReducer,
'globalSettings': globalSettingsReducer,
'userInfo': userSettingsReducer
}),
我确实需要使用DevTools,因为它可以帮助我更好地/可视化应用程序的当前状态。也没有Redux DevTools和时间调试,整个Redux方法在我看来就像写了太多的样板。当工具生态系统工作时,它很棒,但是当它破裂时,我所拥有的就是更多样板代码(减速器,动作等)。
为什么Redux DevTools不会启动? 为什么不向控制台报告任何错误? 如何让它再次运作?
PS:我没有使用Redux DevTools的npm包,我正在使用@ ngrx / store提供的原始商店。它曾经工作正常,直到我添加了.forFeature()调用。
请咨询
答案 0 :(得分:0)
Aaaah,所以解决方案是在MAIN模块中初始化StoreDevtoolsModule(通常称为app.module)。如果你在稍后加载的其他模块中初始化它,那么它将以荒谬的奇怪方式运行(参见我原来的问题)
所以解决方案是将StoreDevtoolsModule.instrument({ maxAge: 25 })
从异步加载的模块移动到主app.module。之后它又像魅力一样。
但是对我来说,作为这个项目的新手,当DevTools之前已经设置完毕时,它完全不明显,为什么突然停止工作。