在 Redux/ngrx 中转换存储 属性 的位置

Where to transform store property in Redux/ngrx

我有以下设置

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));

现在这个映射逻辑可能会很长,我不想在多个组件中重复这段代码。

将此映射放在哪里最有意义?

我像这样将它添加到 reducer

export const getMapped = (state: State) => state.map(val => // some logic); 然后我在选择器中得到这个。

这是推荐的方法吗?

如果我明白了,你在找Selector

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

您现在可以使用它了

this.store.pipe(select(fromSelector.mySelector)).subscribe(...);