ngrx/effect 如何将选择器中的参数解析为 GET
ngrx/effect how to parse params from a selector into a GET
我正在从 Selected 服务选择器获取 Id 和 ova,并希望将其解析为调用效果中的 API 端点的 GET 方法。
这就是我所做的,但是在选定的服务页面加载上,当我记录数据时,我得到的是空值。需要帮助。
@Effect()
loadService$ = this.actions$.ofType(servicesActions.LOAD_ONE_SERVICE)
.pipe(
switchMap(() => {
this.store.select(fromSelect.getSelectedService).subscribe(
data => {
this.id = data.merchantId,
this. ova = data.ova
}
)
return this.appservice
.getServiceById(
this.id,
this.ova
)
.pipe(
map(service => new servicesActions.LoadServiceSuccess(service)),
catchError(error => of (new servicesActions.LoadServiceFail(error)))
);
})
);
你可以尝试这样的事情。使用 switchmap 在管道中保留一层嵌套。
@Effect()
loadService$ = this.actions$.ofType(servicesActions.LOAD_ONE_SERVICE)
.pipe(
withLatestFrom(this.store.select(fromSelect.getSelectedService)),
switchMap(({merchantId, ova}) => this.appservice.getServiceById(merchantId, ova))
.pipe(
map(service => new servicesActions.LoadServiceSuccess(service)),
catchError(error => of(new servicesActions.LoadServiceFail(error)))
)
);
我正在从 Selected 服务选择器获取 Id 和 ova,并希望将其解析为调用效果中的 API 端点的 GET 方法。 这就是我所做的,但是在选定的服务页面加载上,当我记录数据时,我得到的是空值。需要帮助。
@Effect()
loadService$ = this.actions$.ofType(servicesActions.LOAD_ONE_SERVICE)
.pipe(
switchMap(() => {
this.store.select(fromSelect.getSelectedService).subscribe(
data => {
this.id = data.merchantId,
this. ova = data.ova
}
)
return this.appservice
.getServiceById(
this.id,
this.ova
)
.pipe(
map(service => new servicesActions.LoadServiceSuccess(service)),
catchError(error => of (new servicesActions.LoadServiceFail(error)))
);
})
);
你可以尝试这样的事情。使用 switchmap 在管道中保留一层嵌套。
@Effect()
loadService$ = this.actions$.ofType(servicesActions.LOAD_ONE_SERVICE)
.pipe(
withLatestFrom(this.store.select(fromSelect.getSelectedService)),
switchMap(({merchantId, ova}) => this.appservice.getServiceById(merchantId, ova))
.pipe(
map(service => new servicesActions.LoadServiceSuccess(service)),
catchError(error => of(new servicesActions.LoadServiceFail(error)))
)
);