Как получить значение из магазина ngrx - PullRequest
0 голосов
/ 14 июня 2019

У меня есть угловой проект 8, и я использую ngrx для хранения массива объектов в государственном хранилище.Мне удалось это сделать, но теперь я хочу сделать post request для сервера с данными, которые находятся в хранилище состояний.

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

Это код, который я пытаюсь, и это не такза работой.Спасибо

Ответы [ 3 ]

2 голосов
/ 14 июня 2019

Похоже, вы пытаетесь выполнить побочный эффект.Для этого вы должны сделать следующее в вашем компоненте / сервисе -

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 Effects - https://ngrx.io/guide/effects

1 голос
/ 14 июня 2019

Самый простой ответ

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

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

});
1 голос
/ 14 июня 2019

Попробуйте следующее

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

const dataSelector = createFeatureSelector('dataStore');

this.store.select(dataSelector).subscribe(
   (data) => {
     this.dataService.postData(data)
   }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...