我正在将我的 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({});
})
);
任何帮助深表感谢。