下面的代码将引发以下错误:
[mobx]无法从[对象对象]获取原子
我尝试使用未定义的内容初始化数据,但出现相同的错误。
我将其解释为data
属性上没有可用的原子。但是由于该属性是使用observable
创建的,所以我看不出为什么。
import {
observable,
IObservableValue,
onBecomeObserved,
onBecomeUnobserved
} from "mobx";
export class ObservableThing<T extends object> {
public data: IObservableValue<T | undefined>;
public isLoading: IObservableValue<boolean>;
constructor() {
this.data = observable.box();
this.isLoading = observable.box(false);
onBecomeObserved(this, "data", this.resumeUpdates);
onBecomeUnobserved(this, "data", this.suspendUpdates);
}
private resumeUpdates() {
console.log(`Resume updates`);
}
private suspendUpdates() {
console.log(`Suspend updates`);
}
}
const thing = new ObservableThing();
console.log(thing.data)
---编辑---
我已经通过使用@observable装饰器解决了它。
@observable private data: IObservableValue<T>;
@observable private isLoading: IObservableValue<boolean>;
我仍然想知道为什么没有它们就无法工作,因为我不确定使用装饰器时类的行为如何改变。