Справка по ngrx для перехода с rxjs 5 на 6 - PullRequest
0 голосов
/ 16 мая 2018

Я нахожусь в процессе перехода моего приложения Angular 5 с использования rxjs 5 на rxjs 6. Большая часть этого - переход от использования цепочки точек к использованию .pipe ().Мое приложение использует ngrx, и у меня возникают проблемы с эффектами.При использовании rxjs 5 это работает.

@Effect() public onSave$: void | Observable<void|{}> =
this.actions.ofType<DashboardGroupsActions.Save>(DashboardGroupsActions.SAVE_DASHBOARD_GROUPS)
  .map((action: DashboardGroupsActions.Save) => action.payload)
  .switchMap((payload: DashboardGroups) => {

      return this.api.saveDashboardGroup(payload);
  })
  .catch(() => {

      return Observable.of();
  });

Ниже показан мой код после преобразования цепочки точек в .pipe ().Но теперь я также получаю следующую ошибку, которую не могу исправить.

"Свойство pipe" не существует для типа 'Actions<Action>' "

import { Observable, pipe, of } from 'rxjs';
import { catchError, filter, map, mergeMap, switchMap } from 'rxjs/operators';
import { Action, Store } from '@ngrx/store';
import { Actions, Effect, ofType } from '@ngrx/effects';

@Effect() public onSave$: Observable<{}|Action> = this.actions.pipe(
      ofType<DashboardGroupsActions.Save>(DashboardGroupsActions.SAVE_DASHBOARD_GROUPS),
      map((action: DashboardGroupsActions.Save) => action.payload),
      switchMap((payload: DashboardGroups) => {

          return this.api.saveDashboardGroup(payload);
      }),
      catchError(() => {

          return of({});
      })
  );

Любая помощь приветствуется.

...