Как получить значение вместо наблюдаемого из NGRX Store в коде TS - PullRequest
0 голосов
/ 14 марта 2020

Рассмотрим следующий код

user$ = this._store.pipe(select(UserSelectors.selectUser));

Теперь у нас есть наблюдаемая, которую можно использовать следующим образом:

  1. В представлении:
(user$ | async)?.name
В Компоненте (TS):
   let storeValue: IUser;
   this.user$.pipe(take(1)).subscribe(value => storeValue = value);

Итак, в моем Компоненте я реализовал геттер:

    protected get user(): IUser {
        let storeValue: IUser;
        this.user$.pipe(take(1)).subscribe(value => storeValue = value);
        return storeValue;
    }

Мне интересно, есть ли способ использовать селектор для возврата фактического значения, что-то вроде:

user = this._store.VALUE(select(UserSelectors.selectUser));

Так что вся моя логика получения c позаботилась.

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

NgRx - это реализация Redux, предназначенная для реактивного программирования.

Reactive:

  • Событие происходит
  • Triggerers Action, который изменяет хранилище
  • может вызывать эффекты, которые читают / записывают данные и создают действия (для изменения хранилища)
  • Представления будут использовать хранилище с наблюдаемыми. Наблюдаемое обновление обновляет представление каждый раз, когда магазин меняется. Таким образом, каждое изменение магазина будет перенаправлено на просмотр.

Ваш путь не реагирует, поэтому он не работает с NgRx. Вы можете сделать это без магазина, или вы должны найти реактивный способ решить вашу проблему.

0 голосов
/ 14 марта 2020

Это невозможно. Я бы даже сказал, что это анти-паттерн.

...