【发布时间】:2019-01-15 15:53:27
【问题描述】:
我在服务上有一个方法,我需要从 redux 存储中获取一些数据并在 http 请求中使用它,但我不断收到错误或 http 请求未执行,这是我正在尝试的:
class SettingService {
updateSettings({ settings }) {
return this.store.select(s => s.settings).map((state: any) => {
const { id } = state.data;
return this.http.put('route/' + id, { settings }).pipe(map((response: any) => {
const { data } = response;
this.store.dispatch(new GetSettingsSuccess({ data }));
return data;
})).pipe(catchError(this.errorHandlerService.handleError));
});
}
}
我遇到的错误类似于
“可观察”类型上不存在属性“地图”
我使用它的方式是将服务导入组件,然后:
this.settingService.updateSettings({ settings }).subscribe();
该方法被调用,但由于某种原因,http 请求没有发生。我也应该订阅http请求吗?或者我应该使用管道而不是地图并给它多个运算符?
【问题讨论】:
-
是的,你应该订阅你的 http 调用,仅仅映射是不够的。
-
@Korfoo 那么我如何从组件订阅服务方法 1 次并且 ngrx 选择器和 http 都一起运行?
标签: angular ngrx ngrx-store