Я хочу использовать ngrx / efffects и ngrx / store в моем угловом приложении (v7).Я настроен в моем приложении, как указано в документации ngrx .При диспетчерском действии в AppComponent редуктор работает должным образом, но похоже, что эффекты не прослушивают никаких действий .
Тестирование:
Проверьте консоль после выполнения ng serve -o
.Все зарегистрировано, как и ожидалось, кроме одного в эффектах.
Пожалуйста, подскажите, где я ошибся.
Github Repo
Эффекты
@Injectable()
export class AppEffects {
constructor(
private actions$: Actions,
private myService: MyserviceService
) {}
myAction$ = this.actions$.pipe(
ofType<fromActions.GetItems>(MyActionTypes.GET_ITEMS),
switchMap(action => {
console.log('i am in effects', action);
return this.myService.getItems().pipe(
map(data => new fromActions.GetItemsSuccess(data)),
catchError(err => of(new fromActions.GetItemsSuccess(err)))
);
})
);
}
Настроенные эффекты в AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
StoreModule.forRoot(reducers, { metaReducers }),
EffectsModule.forRoot([AppEffects])
],
})
Диспетчерское действие в AppComponent
export class AppComponent implements OnInit {
constructor(private store: Store<State>) {
console.log('in component');
}
ngOnInit() {
console.log('dispatched action in AppComponent');
this.store.dispatch(new fromAction.GetItems());
}
}