代码之家  ›  专栏  ›  技术社区  ›  J-man

延迟加载的特性是否可以在特性与角6中的ngrx之间通信状态?

  •  5
  • J-man  · 技术社区  · 6 年前

    如果我有一个应用程序 延迟加载 ,还使用 ngrx公司 为了管理状态,我为每个特性都有一个状态实例,它有自己的缩减器、动作等,例如:

    product-feature
        product-edit
        product-add
        product-admin
        state
            product.reducer.ts
            product.actions.ts
            product.effects.ts
            product.index.ts
    customer-feature
        customer-edit
        customer-add
        customer-admin
        state
            customer.reducer.ts
            customer.actions.ts
            customer.effects.ts
            customer.index.ts
    

    在这种结构下,我的主要问题是 product-feature customer-feature ? 如果我,作为用户,转到 客户特征 ,但是 客户特征 需要一些来自 产品特点 ,它是否仍然呈现并获取数据,即使 产品特点 从未创建,因为用户没有访问它(通过延迟加载)?

    我在网上看到的大多数例子都是将ngrx作为一个 AppState 不要做延迟加载,我看到的在组件之间进行通信的延迟加载示例是父/子的。我读过的一些文章说,你需要扩展应用程序状态以包括功能状态,因为功能状态不能在应用程序状态中引用。我想知道的实例是在兄弟特性之间通信状态。通过延迟加载,ngrx可以实现这一点吗?

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Fateh Mohamed    6 年前

    ngrx会将延迟加载模块的新状态与当前状态合并,并且只有当您导航到延迟加载模块的某个路由时才会发生这种情况,因此如果您的产品功能未加载,您将无法访问它的存储区。

    我建议在客户功能中移动所需的部分,或者可以为此创建一个共享模块