如果我有一个使用延迟加载的应用程序,并且还使用ngrx来管理状态,我有一个状态实例,每个功能都有自己的reducer,actions等.例如:
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
有了这个结构,我的主要问题是产品功能之间的状态可以通信还是使用客户功能之间的状态?如果我作为用户转到客户功能,但客户功能需要来自产品功能的一些状态信息,即使从未创建产品功能,它仍会呈现并获取数据,因为用户没有去它(通过延迟加载)?
我在网上看到的大多数示例都将ngrx作为一个AppState处理,并且不进行延迟加载,而我看到的延迟加载示例是组件之间的通信是父/子.我读过的一些文章说,您需要扩展应用程序状态以包含功能状态,因为在应用程序状态中无法引用功能状态.我想知道的实例是在兄弟功能之间传递状态. ngrx是否可以通过延迟加载?
谢谢.
解决方法:
ngrx会将延迟加载模块的新状态与当前状态合并,只有当您导航到延迟加载模块的其中一条路径时才会发生这种情况,因此如果未加载产品功能,则无法访问到它的商店.
我建议您在客户功能中移动您需要的部分,或者您可以为此创建共享模块