2

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

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

和一个孩子状态:

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

我想访问parentPropChildState 内部,我尝试使用共享状态方法,但它会在 ParentState 导入 ChildState 时创建循环依赖,反之亦然。

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

4

2 回答 2

1

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

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

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

于 2018-08-04T16:35:15.577 回答
0

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

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

现在发生了一些动作,在主状态中设置了一些值,然后在子状态中设置了一些值,但我想在映射中将它设置为 fe,键作为主状态的属性值。

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

于 2021-03-17T22:38:40.070 回答