【发布时间】:2018-01-18 05:12:10
【问题描述】:
我的 ngrx 状态如下所示:
{
dashboards: Dashboard[];
selectedDashboard: number
}
我为 Dashboard 创建了一个 entityAdapter,它运行良好。 Dashboard 类型还包含一个小部件列表。所以我想以某种方式对其进行规范化,以便我可以通过 id 选择一个小部件。我不确定如何在同一类型上创建另一个实体。我正在考虑添加到状态,所以它看起来像这样:
{
dashboards: Dashboard[];
selectedDashboard: number;
widgets: Widget[]
}
我遇到了一些问题,但看起来我无法为它创建选择器,除非我让小部件扩展 EntityState。对于小部件的 entityAdapter 的 selectId,虽然我也需要在小部件中使用 id。我正在尝试做的事情是可能的还是我的设计不好?
【问题讨论】:
-
您是否尝试过在状态对象
widgets: [key: string]: Widget;中声明类型?这允许您通过 id 进行选择,例如state.widgets[id]. -
真的我想使用实体的唯一原因是它会照顾将数组转换为我的对象。我继续为小部件创建了一个新的功能状态。现在的问题是我必须在两个地方跟踪它们。仪表板状态和实际小部件状态中的数组。我正在尝试找到一种方法让仪表板仅链接到小部件状态,但尚未找到相关信息