NGXS-从子状态访问父状态

时间:2018-08-04 11:16:50

标签: ngxs

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

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

还有一个子状态:

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

我想在ChildState中访问parentProp,我尝试使用shared state method,但是当ParentState导入ChildState时会创建一个循环依赖关系,反之亦然。

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

2 个答案:

答案 0 :(得分:1)

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

话虽如此,我会问为什么孩子对父母的财产如此感兴趣。也许该属性可以移交给孩子,或者孩子可以响应父母用来设置该属性以捕获其自己的值副本的相同操作。

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

答案 1 :(得分:0)

我和作者的需求完全一样。孩子对父母财产感兴趣的原因很简单。 您在这里主要关注选择部分,但在我的情况下,我需要它来保持带有状态的干净文件,我希望避免混乱。

这不是我的情况,但要配合它:)。假设我们有一些属性的主状态和一些保持更复杂数据结构的子状态。

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

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