首页 > 解决方案 > 如何处理不同减速器中的嵌套状态?

问题描述

我有一个 auth reducer 可以处理以下操作:LoginRegisterLogoutUserLoaded。我的 AuthState 包含当前登录的用户。用户模型有一个设备属性 (Devices[])。现在我有一个动作来激活一个设备,它触发一个效果(ActivateDevice),进而触发设备数组中的状态变化。现在我不确定在哪里放置与设备有关的所有 NGRX 相关代码(ActivateDevice 操作、设备激活减速器功能)。我认为这段代码并不真正适合身份验证功能。

那么我应该将reducer 放到我的authReducer 中,将ActivateDevice-Action 放到Auth Actions 中还是要创建不同的文件(例如device.reducer.ts/device.actions.ts)?如果你创建了一个不同的减速器。那么如何处理来自这个 reducer 的 AuthState 呢?

标签: angularngrx

解决方案


如果它们是两个独立的实体,我建议将它们分成多个减速器。我不知道说这是解决您的问题的方法,因为在某些情况下,在单个减速器中“分组”实体更容易。

那么如何处理来自这个 reducer 的 AuthState

它不能。一个reducer 只负责自己的状态,不能从另一个reducer 访问/修改状态。


推荐阅读