NGXS-从父状态中选择子状态

时间:2019-05-03 01:19:39

标签: angular ngxs

我正在学习NGXS,并有一个带有嵌套父/子关系的状态模型,其中有一定数量的父母每个人都有自己的子集(子孙),就像这样:

state: {
    parents: ParentModel[]
}

ParentModel {
    children: ChildModel[]
}

ChildModel {
   grandchildren: GrandChildren[]
}

etc.

但是,当状态在redux / flux实现中建模时,上面的示例(据我所知)通常会被规范化。

我希望能够以与状态树的心理模型相匹配的方式访问子孙。我想出的最好办法就是按照文档(https://ngxs.gitbook.io/ngxs/concepts/select#lazy-selectors

中的描述创建一个“惰性选择器”。

赞:

export class ChildRecordState {
@Selector()
    static childRecords(state: ChildRecordModel) {
        return (id: number) => state.Records.filter(r => r.parentId === id);
    }
// ...
}

(此处没有孙子孙的完整示例:https://stackblitz.com/edit/angular-ngxs-parent-child)。

我确实看到可以访问子状态,并且可以在父级中使用该状态创建一个选择器,但这似乎并没有真正改善结果。问题是-与示例/ stackblitz中显示的方式相比,访问父母的子女是否有更好的模式?

0 个答案:

没有答案