Javascript 使用StoreRouterConnectionModule时,根减速器显示为空
我正在我的项目中尝试StoreRouterConnectionModule,以了解它是如何工作的。但当我将该模块导入到我的应用程序模块时,我的减缩器显示为空对象 另一方面,如果我将伪回调作为reducer发送,比如Javascript 使用StoreRouterConnectionModule时,根减速器显示为空,javascript,angular,redux,ngrx,Javascript,Angular,Redux,Ngrx,我正在我的项目中尝试StoreRouterConnectionModule,以了解它是如何工作的。但当我将该模块导入到我的应用程序模块时,我的减缩器显示为空对象 另一方面,如果我将伪回调作为reducer发送,比如()=>({test:'test'})。显示的减速器已填充 我错过了什么 应用程序模块内部 imports: [ StoreModule.forRoot(reducers, { metaReducers }), EffectsModule.forRoot([RootEf
()=>({test:'test'})
。显示的减速器已填充
我错过了什么
应用程序模块内部
imports: [
StoreModule.forRoot(reducers, { metaReducers }),
EffectsModule.forRoot([RootEffects]),
StoreRouterConnectingModule.forRoot({ stateKey: 'router' }),
StoreDevtoolsModule.instrument(),
]
根还原剂
export const reducers: ActionReducerMap<AppState> = {
router: routerReducer,
root: fromRoot.rootReducer
}
解决方案
在我的案例中,问题是因为我使用metronic angular主题,而keen themes团队犯了一个错误
问题是metronic angular使用了StoreFreeze模块,该模块已被弃用,并导致StoreRouterModule出现一些问题,因为ngrx@4
我删除并启用了ngrx几年来本机支持的strictStateImmutability
export const rootReducer = (state = initialState, action: RootActions.RootActions): RootState => {
switch (action.type) {
case RootActionTypes.Action1:
return {...state} // push action1 items
case RootActionTypes.Action2:
return {...state} // push action2 items
case RootActionTypes.Action3:
return {...state} // push action3 items
default:
return state;
}
};