Javascript MobX-迁移到MobX v.6+后无法从undefined获取atom;
我需要将Javascript MobX-迁移到MobX v.6+后无法从undefined获取atom;,javascript,typescript,mobx,mobx-react,Javascript,Typescript,Mobx,Mobx React,我需要将mobxv.5迁移到支持react钩子的mobxv6+,但是在升级到mobxv6+后,我得到了这个错误[MobX]无法从未定义的中获取atom,我能够跟踪到当我想用onBecomeObserved创建惰性可观测时,出于某种原因,这会在上面抛出错误,但我无法找出原因 我使用MobX提供的inject将组件连接到存储区,这可能不再是一种好模式,但它是我如何从旧的MobX迁移的最快方式withTheme功能是主题系统的Material UI连接器 export function injecto
mobxv.5
迁移到支持react钩子的mobxv6+
,但是在升级到mobxv6+
后,我得到了这个错误[MobX]无法从未定义的
中获取atom,我能够跟踪到当我想用onBecomeObserved
创建惰性可观测时,出于某种原因,这会在上面抛出错误,但我无法找出原因
我使用MobX提供的inject将组件连接到存储区,这可能不再是一种好模式,但它是我如何从旧的MobX
迁移的最快方式withTheme
功能是主题系统的Material UI
连接器
export function injector<T>(target: T): T {
return inject('data', 'view')(withTheme(target));
}
export function storeConnect<T extends IReactComponent>(target: T): T {
return injector(observer(target));
}
运气好吗?
abstract class BaseProvider {
@observable state = "NONE";
constructor() {
//this it throws error
onBecomeObserved(this, "isLoading", this.loadData);
}
public abstract loadData(): void;
@computed get isLoading() {
return (this.state === "Loading");
}
}
class Provider extends BaseProvider {
constructor() {
super();
this.loadData = this.loadData.bind(this);
}
public loadData() {
if (this.state !== "Loaded") {
//some code
}
}
}