NGRX 效果抛出错误类型 XXXX 无法分配给类型 'ObservableInput<any>'
NGRX Effect throws Error Type XXXX not assignable to type 'ObservableInput<any>'
我想从状态中获取最新数据并调用服务 backend.I 为此创建了以下效果
onboardGuest$ = createEffect(() => {
return this.actions$.pipe(
ofType(GuestActions.onboardGuest),
withLatestFrom(this.store.select(selectGuest)),
switchMap(([{reqPayload}]) => {
return this.httpClient.post(environment.urls.guestOnboard, reqPayload).pipe(
switchMap(({payload}) => {
return GuestActions.onboardGuestSuccess({resPayload:payload})
}),
catchError((err) => {
return of(GuestActions.onboardGuestFailure({ error: err }))
})
)
})
);
});
但是在第二个switchMap中,我有这个error.what我这里做错了吗
Argument of type '({ payload }: Object) => { resPayload: any; } &
TypedAction<"[Guest] Onboard Guest Success">' is not assignable to parameter of type '(value: Object,
index: number) => ObservableInput<any>'.
Type '{ resPayload: any; } & TypedAction<"[Guest] Onboard Guest Success">'
is not assignable to type 'ObservableInput<any>'.
Property '[Symbol.iterator]' is missing in type '{ resPayload: any; } &
TypedAction<"[Guest] Onboard Guest Success">' but required in type 'Iterable<any>'
在这里你应该只使用 map
而不是 switchMap
因为你只是将同步事件转换为同步某些东西,而不是可观察的
map(({payload}) => {
return GuestActions.onboardGuestSuccess({resPayload:payload})
}),
我想从状态中获取最新数据并调用服务 backend.I 为此创建了以下效果
onboardGuest$ = createEffect(() => {
return this.actions$.pipe(
ofType(GuestActions.onboardGuest),
withLatestFrom(this.store.select(selectGuest)),
switchMap(([{reqPayload}]) => {
return this.httpClient.post(environment.urls.guestOnboard, reqPayload).pipe(
switchMap(({payload}) => {
return GuestActions.onboardGuestSuccess({resPayload:payload})
}),
catchError((err) => {
return of(GuestActions.onboardGuestFailure({ error: err }))
})
)
})
);
});
但是在第二个switchMap中,我有这个error.what我这里做错了吗
Argument of type '({ payload }: Object) => { resPayload: any; } &
TypedAction<"[Guest] Onboard Guest Success">' is not assignable to parameter of type '(value: Object,
index: number) => ObservableInput<any>'.
Type '{ resPayload: any; } & TypedAction<"[Guest] Onboard Guest Success">'
is not assignable to type 'ObservableInput<any>'.
Property '[Symbol.iterator]' is missing in type '{ resPayload: any; } &
TypedAction<"[Guest] Onboard Guest Success">' but required in type 'Iterable<any>'
在这里你应该只使用 map
而不是 switchMap
因为你只是将同步事件转换为同步某些东西,而不是可观察的
map(({payload}) => {
return GuestActions.onboardGuestSuccess({resPayload:payload})
}),