Angular с ngrx и машинописными задачами с эффектами - PullRequest
0 голосов
/ 04 мая 2018

У меня возникают некоторые проблемы при использовании 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

1 Ответ

0 голосов
/ 07 мая 2018
 ofType<LoadContainerAction>(ActionTypes.LOAD_CONTAINER),

Кажется, решил это вместо просто ofType(...)

...