繁体   English   中英

如何从ngrx商店获取价值

[英]How to get the value from ngrx store

我有一个angular 8项目,我正在使用ngrx在状态存储中存储对象数组。 我设法做到了,但是现在,我想使用状态存储中的数据向服务器发出post request

this.dataService.postData(this.store.pipe(select('dataStore')));

那是我正在尝试的代码,它不起作用。 谢谢

看起来您正在尝试执行副作用。 为此,您应该在组件/服务中执行以下操作-

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

尝试以下

import { createFeatureSelector } from '@ngrx/store';

const dataSelector = createFeatureSelector('dataStore');

this.store.select(dataSelector).subscribe(
   (data) => {
     this.dataService.postData(data)
   }
);

最简单的答案

this.store.pipe(select('dataStore'), take(1)).subscribe((data) => {

this.dataService.postData(data).subscribe();

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM