【发布时间】:2020-03-09 12:51:19
【问题描述】:
我创建了一个非常复杂的应用程序,以至于我必须将状态分成两个较小的状态。不幸的是,状态 A 中的一些选择器必须从状态 B 中读取某些字段,而状态 B 中的一些选择器必须从状态 A 中读取某些字段。
例如 - 状态 A:
@Injectable({ providedIn: "root" })
@State<{x: number;}>({
name: "stateA",
defaults: {x: 0}
})
export class StateA {
@Selector([StateB])
public static someSelector(stateA, stateB) {
// do stuff...
}
}
和状态 B:
@Injectable({ providedIn: "root" })
@State<{y: number;}>({
name: "stateB",
defaults: {y: 0}
})
export class StateB {
@Selector([StateA])
public static someSelector(stateB, stateA) {
// do stuff...
}
}
当我尝试实现它时,我得到了错误:
Uncaught ReferenceError: Cannot access 'StateA' before initialization
错误在以下情况下消失:
state A uses B and B doesn't use A 或
state B uses A and A doesn't use B
我该如何解决?
【问题讨论】: