我正在使用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:我不使用npm软件包作为redux devtools,我正在使用 @ngrx/store提供的RAW Store。它曾经工作正常,直到我添加了.forfeature((调用。
请建议
aaaaah,因此解决方案是在主模块中初始化storedevtoolsmodule(通常称为app.module(。如果您在以后加载的其他一些模块中初始化它,那么它将以荒谬的方式行为(请参阅我的原始问题(
因此,解决方案是将StoreDevtoolsModule.instrument({ maxAge: 25 })
从异步加载的模块移动到主app.module。之后,它再次像魅力一样起作用。
对我来说,作为这个项目的新手,当Devtools之前已经设置了DevTools,这完全不明显,为什么突然停止工作。