如何解决MobX - 迁移到 MobX v.6+
我需要将 MobX v.5
迁移到支持 React 钩子的 MobX v6+
,但是在升级到 MobX v6+
后,我收到此错误 [MobX] Cannot obtain atom from undefined
想用 onBecomeObserved
创建 Lazy observable,由于某种原因,这会引发上述错误,但我不知道是什么原因造成的。
我使用 MobX 提供的注入将组件连接到商店,它可能不再是一个好的模式,但它是我如何从旧的 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));
}
这里是我创建惰性 observable 的基础商店,它应该负责从 API 加载数据,但是在这里我的应用程序崩溃并且无法找到解决方案。
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
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。