我有一个8号角项目,我正在使用ngrx
将对象数组存储在状态存储中。我设法做到了,但是现在,我想使用状态存储中的数据对服务器创建post request
。
this.dataService.postData(this.store.pipe(select('dataStore')));
那是我正在尝试的代码,它无法正常工作。 谢谢
答案 0 :(得分:2)
好像您正在尝试产生副作用。为此,您应该在组件/服务中执行以下操作-
this.store.pipe(select('dataStore'),
take(1)
switchMap((data) => {
return this.dataService.postData(data);
}
).subscribe(responseOfDataService => {
//do whatever you want to do with the response
console.log(responseOfDataService);
});
顺便说一句-要处理副作用,您应该尝试ngrx效果-https://ngrx.io/guide/effects
答案 1 :(得分:1)
尝试以下
import { createFeatureSelector } from '@ngrx/store';
const dataSelector = createFeatureSelector('dataStore');
this.store.select(dataSelector).subscribe(
(data) => {
this.dataService.postData(data)
}
);
答案 2 :(得分:1)
最简单的答案
this.store.pipe(select('dataStore'), take(1)).subscribe((data) => {
this.dataService.postData(data).subscribe();
});