在一种情况下,我在用户页面上有一个用户列表。每个用户都有自己的应用程序列表,单击某个用户时,将显示相应的应用程序列表。我想使用ngrx实体适配器,但是首先我需要设计状态。一种选择是:
const state = {
usersState: {
entities: {},
apps: {
entities: {}
}
}
}
另一个是这个
const state = {
usersState: {
entities: {},
},
appsState: {
entities: {}
}
}
由于用户页面外没有应用程序,因此第一种选择对我来说更有意义,但是采用这种方法,我遇到了一个问题:如何使用适配器的addAll
方法?据我了解,如果我错了,请纠正我,addAll
接受一个有效载荷,该有效载荷将一个项目列表表示为第一个参数,将状态表示为第二个参数,并以某种方式将它们合并在一起。您能否显示一个示例,说明如何使用适配器更新嵌套状态?也许解决方案是选择第二种方法?谢谢。
答案 0 :(得分:0)
这是适配器是只为一个实体负责,他这样说,我认为这是可能做到管理子状态。为此,您应该创建两个适配器,它看起来像这样:
return {
...state,
apps: {
entities: appAdapter.addAll(payload.apps, state.apps)
}
}
旁注,您应尽量保留state normalized。