在 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(...);
我有以下设置
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(...);