NGRX彼此嵌套多个功能模块?

时间:2019-08-15 12:37:09

标签: angular7 ngrx ngrx-store ngrx-effects

Im目前使用的商店是功能模块的扁平结构,即:

{
    feature_A: {
       A:'A',
       B:'B'
    },
    feature_B:{
        C:'C',
        D:'D'
    }
}

但是我想做的是:

{
    feature_A: {
       A:'A',
       B:'B',
       feature_B:{
        C:'C',
        D:'D'
      }
    }
}

也许是这样的:     App.Module

StoreModule.forFeature('feature_A', fromFeature_A.feature_A_Reducers)
StoreModule.forFeature('feature_A.feature_B', fromFeature_B.feature_B_Reducers)

在网上寻找答案的过程并没有找到一个真正的分析器,只是建议它保持功能模块的扁平结构。

1 个答案:

答案 0 :(得分:1)

ngrx中的功能模块只是对象根的立即状态,因此实际上并没有嵌套功能模块的想法。

相反,您仍然可以通过将功能B的状态抽象为不同的文件(归约器,动作,效果...),但将其视为功能A的子状态,来实现类似的行为。

然后您可以创建一个选择器来访问特定功能B的状态:

const selectFeatureA = createFeatureSelector('feature_A');
const selectFeatureB = createSelector(selectFeatureA, (state) => state.feature_B);
相关问题