我在项目中使用MobX 6+,并且我有一个带有@observable
注释字段的类,该字段包含类类型。我用初始化类型
class MyClass {
@observable myObservableField = ClassToInitialize;
problemHere() {
....
const MyType = this.myObservableField;
const TypeInstance = new MyType(); // <-- Error is thrown at this line
....
}
}
class ClassToInitialize {
constructor() {
....
}
}
然而,我得到以下错误:
Uncaught TypeError: Class constructor IgnoreRegion cannot be invoked without 'new'
调查该问题后,它似乎是由于MobX将字段封装在代理函数中而发生的。
为了解决此问题,请使用shallow
:
class MyClass {
@observable.shallow myObservableField;
....
}