Javascript Redux开发工具有时会被禁用

Javascript Redux开发工具有时会被禁用,javascript,redux,ngrx,ngrx-store,redux-devtools-extension,Javascript,Redux,Ngrx,Ngrx Store,Redux Devtools Extension,我正在使用Angular 5+NgRx开发应用程序。我已经安装了浏览器扩展Redux DevTools(适用于Chrome和Firefox)。但两个扩展都被禁用(图标为灰色,不显示存储历史) 我的应用程序有几个模块,它们是异步加载的。 主app.module.ts包含此代码 StoreModule.forRoot({ user: userReducer }) 另一个模块有这个 StoreModule.forFeature('dashboard', dashboardReducer), Sto

我正在使用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又开始工作了,但其他东西坏了(正如预期的那样)

我确实需要DevTools来工作,因为它可以帮助我更好地了解/可视化应用程序的当前状态。另外,如果没有Redux开发工具和时间旅行调试,整个Redux方法在我看来就像编写了太多的样板文件。当工具生态系统工作时,它是伟大的,但当它崩溃时,我所拥有的只是更多的样板代码(还原程序、操作等)

为什么Redux开发工具无法启动? 为什么它不向控制台报告任何错误? 如何使它再次工作

PS:我没有使用Redux DevTools的npm包,我使用的是@ngrx/store提供的原始存储。在我添加.forFeature()调用之前,它一直工作得很好


请告知

Aaaah,因此解决方案是在主模块(通常称为app.module)中初始化StoreDevtoolsModule。如果您在稍后加载的其他模块中对其进行初始化,那么它的行为将异常怪异(请参阅我的原始问题)

因此,解决方案是将
StoreDevtoolsModule.instrument({maxAge:25})
从异步加载的模块移动到主app.module。在那之后,它又像一个符咒一样工作了


但对我来说,作为这个项目的新手,当DevTools之前已经设置好的时候,完全不清楚它为什么突然停止工作。

你的redux create store函数是什么样子的?正如我说过的,我不创建store,我只是从@ngrx/store导入它,然后添加store.select(无论什么),store.dispatch()等等,你在使用商店开发工具吗?我不是。这是要求吗?以前没有它也能用的很好…对不起。我的缺点是,我正在使用它(我只是开发人员之一,它是由其他人添加的)
…(environment.reduxDevTools?[StoreDevtoolsModule.instrument({maxAge:25})]:[])
值得注意的是,加载顺序在app.module中也很重要。
StoreDevtoolsModule.instrument({maxAge:50}),
模块必须始终位于
StoreModule.forRoot(reducers,{metaReducers})模块之后,
模块在
app.module.ts
中导入,否则将发生与您相同的事情。
StoreModule.forRoot({
 'dashboard': dashboardReducer,
 'globalSettings': globalSettingsReducer,
 'userInfo': userSettingsReducer
}),