Mobx类无法读取未定义的属性'加载'

问题描述 投票:0回答:1

使用过的create-react-app创建反应应用

所以我将mobx与react一起使用并创建了以下类:

import { action, decorate, observable } from "mobx";

class AuthStore {
  loading = false;

  login() {
    console.log(this.loading);
  }
}

decorate(AuthStore, {
  loading: observable,
  login: action
});

export default AuthStore;

它说加载是不确定的,但是我不知道为什么...

javascript reactjs mobx
1个回答
0
投票

this的值取决于login的调用上下文,而不取决于声明的位置。我没有看到login在类中被调用,这意味着它不会引用类实例。

最简单的解决方案是将函数转换为使用词法作用域的箭头语法(引用类时将具有this

login = () => {
  console.log(this.loading);
}
© www.soinside.com 2019 - 2024. All rights reserved.