![](/img/trans.png)
[英]Unable to make a class a mobx observer without decorator support - "TypeError Cannot read property 'observer' of undefined"
[英]Mobx Class Cannot read property 'loading' of undefined
使用 create-react-app 創建 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;
它說加載未定義但我不知道為什么......
該錯誤不說loading
是不確定的,它說this
是。
this
的值取決於調用login
的上下文,而不是聲明它的位置。 我沒有看到在類中調用login
,這意味着它不會引用類實例。
最簡單的解決方案是將函數轉換為使用詞法作用域的箭頭語法(它將this
作為指代類)。
login = () => {
console.log(this.loading);
}
另一個不太簡潔的解決方案是手動將this
綁定到構造函數中的函數。
class AuthStore {
constructor() {
this.login = this.login.bind(this)
}
loading = false;
login() {
console.log(this.loading);
}
}
它會產生同樣的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.