У меня возникают некоторые проблемы при использовании ngrx, я получаю сообщение об ошибке при попытке сделать простой эффект. Я получаю сообщение об ошибке: Аргумент типа 'MonoTypeOperatorFunction<LoadContainerAction>
' нельзя назначить параметру типа 'OperatorFunction<Action, Action>
' в строке для startWith.
@Injectable()
export class Effects {
@Effect()
loadCollection$: Observable<Action> = this.actions$
.pipe(
ofType(ActionTypes.LOAD_CONTAINER),
startWith(new LoadContainerAction()),
switchMap(() =>
this.apiService.get<Container[]>("books")
.then(items => new LoadContainerSuccessAction(items))
.catch(error => of(new LoadContainerFailAction(error)))
)
);
constructor(private actions$: Actions, private apiService: ApiService) { }
}
Вот как выглядят ActionTypes и LoadContainerAction:
export enum ActionTypes {
LOAD_CONTAINER = "[container] load",
LOAD_CONTAINER_SUCCESS = "[container] load success",
LOAD_CONTAINER_FAILURE = "[container] load fail",
}
export class LoadContainerAction implements Action {
readonly type = ActionTypes.LOAD_CONTAINER;
}
Это мой (связанный) импорт:
import { Injectable } from "@angular/core";
import { Action } from "@ngrx/store";
import { Effect, Actions, ofType } from "@ngrx/effects";
import { Observable, of } from "rxjs";
import { startWith, switchMap } from "rxjs/operators";
Я использую rxjs: 6.1.0 и ngrx: 6.0.0-beta.1