NGXS - 从子状态访问父状态

NGXS - accessing parent state from child state

我有一个由子状态组成的父状态:

 @State({
     name: 'parent',
     default: { parentProp : 'foo' },
     children: [
        ChildState,
     ]
 }) class ParentState {}

还有一个子状态:

 @State({
     name: 'child',
     default: { },
 }) class ChildState {}

我想访问 ChildState 内部的 parentProp,我尝试使用 shared state method 但它创建了一个循环依赖,因为 ParentState 导入 ChildState,反之亦然。

我错过了一个简单的解决方案吗?

简单的解决方案是将它们放在同一个文件中以避免循环引用。

话虽如此,我想问一下为什么 child 对 parent 属性 如此感兴趣。也许 属性 可以向下移动到 child 或者 child 可以响应 parent 用来设置 属性 捕获自己的相同动作值的副本。

如果您正在寻找一种方法来创建跨两个状态的选择器,那么您可以创建一个连接选择器(请参阅此处的相关部分:https://ngxs.gitbook.io/ngxs/concepts/select)。

我和作者的需求完全一样。 child 会对 parent 属性 感兴趣的原因很简单。 你在这里主要关注选择部分,但在我的情况下,我需要它来保持干净的文件状态,我想避免混乱。

这不是我的情况,但我对此做出了回应:)。假设我们有具有一些属性的主状态和一些保持更复杂数据结构的子状态。

现在发生了一些动作,在主状态中设置了一些值,然后又发生了在子状态中设置一些东西的动作,但我想设置它 f.e。在地图中,键作为主状态 属性 的值。

没什么了不起的……而且这种可能性可能会有很大帮助。