Angular ngrx 管理父子之间的可观察对象和订阅

Angular ngrx manage observables and subscriptions between parent and children

我的商店状态有一段数据称为选定变量:

如果我只有一个组件,我会订阅一个可观察对象并使用如下内容:

我设计了一个父组件,其中包含三个选项卡和三个子组件,以使我的 html 和打字稿代码更清晰:

任何子组件以及父组件都可以更改 State 的 selectedVariable 部分。是否需要在每个子组件和父组件中选择并订阅'selectedVariable'以使子组件和父组件对任何状态变化做出反应,或者是否有更高效和优雅的方式来实现相同的结果?

更好的方法是使用 async 管道并将数据作为 Input 传递给三个子组件。在那里,您可以直接在模板中使用该数据,或使用 ngOnChanges 以命令方式对该存储数据中的更改做出反应。如果你想从子组件发送动作,你可以将 Store 注入这些组件并从它们发送,或者(在我看来,一种更可取的方法)从子组件发出事件(使用 Output EventEmitters) 并仅从父组件调度。这样您就可以将组件与商店分离,只有您的父组件会处理商店逻辑,而子组件会处理显示 UI.