Ngrx 示例应用:状态如何连接在一起



为了改善我的应用程序状态管理,我查看了 ngrx 演示应用程序。

在 example-app/app/core/containers/app.component.ts 中,组件包含两个在构造函数中初始化的可观察量。可观察量初始化为

constructor(private store: Store<fromRoot.State>) {
/**
* Selectors can be applied with the `select` operator which passes the state
* tree to the provided selector
*/
this.showSidenav$ = this.store.pipe(select(fromRoot.getShowSidenav));
this.loggedIn$ = this.store.pipe(select(fromAuth.getLoggedIn));
}

我不明白的是,如何在那里使用来自Auth.getLoggedIn。注入的存储类型为 fromRoot.State。root-reducer example-app/app/reducers/index.ts 与身份验证状态没有连接。身份验证状态示例-app/app/auth/reducers/index.ts 确实扩展了根状态,所以我可以理解这些对身份验证状态的调用有效,但我不明白它是如何工作的。

该示例使用一个存储,因此所有功能化简器的状态将与根(共享(状态一起存储,简而言之,所有化简器和状态都连接到一个源,即存储。

查看功能模块文件中的以下行:https://github.com/ngrx/platform/blob/master/example-app/app/auth/auth.module.ts#L36 可以看到它将功能模块缩减器导入名为auth的存储区,因此fromAuth.getLoggedIn选择auth状态的一部分。

最新更新