错误TypeError:无法读取NGRX效果中null的属性“ pipe”

时间:2019-08-21 08:35:50

标签: angular ngrx ngrx-effects

当我在组件中调度动作时,应该触发此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 }))
                })
            );
        })
    )
);

2 个答案:

答案 0 :(得分:1)

错误表示此行

this.requestHandlerService.invoke(request)

返回null,无法调用管道函数。确保从invoke方法返回Observable,以便可以通过管道传递响应。

答案 1 :(得分:0)

确保requestHandlerService.invoke(request)返回Observables