我正在将我的Angular 5应用程序从使用rxjs 5迁移到rxjs 6.其中很大一部分是从使用点链到使用.pipe()的变化。我的应用程序正在使用ngrx,我在使用Effects时遇到了问题。当使用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()后代码的样子。但现在我也得到以下错误,我似乎无法修复。
“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({});
})
);
非常感谢任何帮助。