问题描述
MobX 6 在我设置的 React 项目中看到了“计数器”变量。但它没有看到函数(增量,减量)。我已将输出附加到所附图片。是什么原因?
import {observable,computed,action,makeObservable} from 'mobx';
class UserStore {
counter = 0;
increment() {
this.counter++;
}
decrement() {
this.counter--;
}
get counterMoreThan10() {
return this.counter > 10;
}
constructor() {
console.log('constructor')
makeObservable(this,{
counter: observable,increment: action,decrement: action,counterMoreThan10: computed
});
}
}
const store = new UserStore();
export default store;
import React from 'react';
import {inject,observer} from "mobx-react";
const Dashboard = ({UserStore}) => {
console.log(UserStore)
return(
<>
</>
)
}
export default inject('UserStore')(observer(Dashboard));
解决方法
您是否检查过原型 __proto__
?
MobX 可能(也可能不会,这是实现细节)创建代理类来保存方法或其他东西。
尝试做console.log(UserStore.__proto__)
或只是console.log(UserStore.increment)