Estoy usando el nuevo ngrx 5. Este es el archivo que contiene los reductores y el selector de características:
import AppState from '../interfaces/app.state' import { ActionReducerMap, createFeatureSelector } from '@ngrx/store' import { partnerReducer } from './partner.reducer' export const reducers: ActionReducerMap<AppState> = { partnerState: partnerReducer } export const getAppState = createFeatureSelector<AppState>('appState')Así es como estoy importando el storeModule
@NgModule({ declarations: [...], imports: [... RouterModule.forRoot(ROUTES), StoreModule.forFeature('appState', reducers) ], providers: [...], bootstrap: [AppComponent], entryComponents: [...] }) export class AppModule { }he seguido este tutorial
Cuando ejecuto la aplicación, me sale el siguiente error:
"StaticInjectorError(AppModule)[StoreFeatureModule -> ReducerManager]: \n StaticInjectorError(Platform: core)[StoreFeatureModule -> ReducerManager]: \n NullInjectorError: No provider for ReducerManager!"Pero si proporciono ReducerManager en los proveedores, aparece este error:
No provider for ReducerManagerDispatcher!Se las arregló para resolver esto agregando StoreModule.forRoot({}), en las importaciones.
StoreModule.forRoot solo debe llamarse una vez en la raíz de su proyecto NgModule. Si no desea registrar una característica, use StoreModule.forFeature. El uso de forRoot registra los proveedores globales necesarios para Store.
Consulte la discusión de github aquí sobre este tema. La razón anterior se indicó en la misma discusión.
yo tenia el mismo problema y encontre esta solucion
imports: [ StoreModule.forRoot({}), StoreModule.forFeature('filter-app', filterReducer) ]