Где преобразовать свойство магазина в Redux / ngrx - PullRequest
0 голосов
/ 28 мая 2020

У меня следующая настройка:

someReducer.ts

export interface State {
   someProp: MyModel;
}
// some action listeners ..
// 
//

export const getProp = (state: State) => state.someProp;

selector.ts

export const getProperty = createSelector(getState, fromSomeReducer.getProperty);

Теперь скажите в моих компонентах, что я хочу использовать преобразованную версию этого someProp, например,

myProp = this.store.pipe(select(fromSelector.getProperty)).pipe(map(val => //some logic here));

. Теперь это отображение logi c может быть длинным, и я не хочу дублирование этого кода в нескольких компонентах.

Где лучше всего размещать это отображение?

Я добавляю его в reducer вот так

export const getMapped = (state: State) => state.map(val => // some logic);, а затем я получить это в селекторе.

Это рекомендуемый подход?

1 Ответ

1 голос
/ 28 мая 2020

Если я понимаю, вы ищете Селектор

export const mySelector = createSelector(
  getProperty,
  val => // Your logic go here
)

Теперь вы можете его использовать

this.store.pipe(select(fromSelector.mySelector)).subscribe(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...