【问题标题】:ngrx entity and multi entity types in state状态中的 ngrx 实体和多实体类型
【发布时间】: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].
  • 真的我想使用实体的唯一原因是它会照顾将数组转换为我的对象。我继续为小部件创建了一个新的功能状态。现在的问题是我必须在两个地方跟踪它们。仪表板状态和实际小部件状态中的数组。我正在尝试找到一种方法让仪表板仅链接到小部件状态,但尚未找到相关信息

标签: angular ngrx


【解决方案1】:

所以我最终做的是为小部件创建功能状态。然后仪表板状态只包含一个小部件属性的键数组。它侦听小部件的相同操作,但不是添加整个内容,而是添加密钥。效果更好,因为我真的只需要它来进行 ngFor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多