我是NgRx的新手。
在我的项目中,我们有3个级别的惰性模块。我希望存储的状态根据模块层次结构进行嵌套,但是在编写时:storeModule.forFeature('child',reducer)
我得到的是扁平状态,而不是层次结构状态。
例如,如果我有父模块和子模块。我将在父模块storeModule.forFeature('father',reducer)
上进行定义
并在子模块storeModure.forFeature('child',reducer)
状态的结果将不是
{ father { child {}}}
相反,它将是:
{ father {}, child {}}
是否有一种方法可以像惰性模块一样使状态分层?
答案 0 :(得分:0)
您实际上可以具有延迟加载的状态片。假设您具有以下模块配置
app
father
child
并且您希望(如前所述)具有以下状态
{
father: {
child: {}
}
}
您需要确保:
AppModule
中有一个路由器,在FatherModule
中有一个路由器。FatherModule
延迟加载到AppModules
路由器中(!)。ChildModule
延迟加载到FatherModules
路由器中(!)。ChildModule
:StoreModule.forFeature('child', childreducers)
和FatherModule
:StoreModule.forFeature('father', fatherreducers)
中。例如,如果您导航到FatherModule
中的某个组件,它将加载father
功能。但不一定是child
功能。仅当您导航到某个加载ChildModule
的子路由时。
您当前要做的是在同一个模块中同时使用两个forFeature
方法。这没有任何意义,因为“功能”与模块直接相关。