当我在组件中调度动作时,应该触发此updateTour效果。但是此错误出现在我的浏览器控制台core.js:5847 ERROR TypeError: Cannot read property 'pipe' of null at SwitchMapSubscriber.project (updatetour.effects.ts:87)
中
requestHandlerService.invoke(request).pipe
导致错误。有人可以解释这是怎么回事
updataTour$ = createEffect(() =>
this.actions$.pipe(
ofType(TourproviderAction.updateTourprovider),
switchMap((action) => {
const data = action.tourProvider;
const parameters: any = { tourProviderId: '1' };
const queryParams = new HttpParams({
fromObject: parameters
})
const options = {
params: queryParams,
headers: {
'Content-Type': 'application/json',
'Authorization': 'a5sfjdksfjksfe2f4af3673ce1a'
}
};
const request = new ServiceRequest
(environment.urls.tourProvider, 'POST', formData, options);
return this.requestHandlerService.invoke(request).pipe(
map((updateResponce) => {
const responceData = JSON.stringify(updateResponce)
return TourproviderAction.updateTourproviderSuccess({ responce: responceData });
}),
catchError(err => {
const errorMessage = JSON.stringify(err);
return of(TourproviderAction.updateTourproviderFail({ errorMessage }))
})
);
})
)
);
答案 0 :(得分:1)
错误表示此行
this.requestHandlerService.invoke(request)
返回null,无法调用管道函数。确保从invoke方法返回Observable,以便可以通过管道传递响应。
答案 1 :(得分:0)
确保requestHandlerService.invoke(request)返回Observables