问题描述
我有一家商店:
class Store {
user!: User;
constructor() {
makeObservable(this,{
user: observable,setUser: action
});
}
setUser = (user: User | undefined) => this.user = user;
}
我收到此错误:
Error: [MobX] Cannot apply 'observable' to 'Store@user': Field not found.
User
是自定义对象,我应该区别对待他吗(可观察的明智)?
提前致谢!
解决方法
By default make(Auto)Observable
仅支持已定义的属性,因此您需要在构造函数中定义 user
或使其可以为空:user: User | null = null
。
或者,您可能想尝试重新配置 how class properties initialisation works,使用 useDefineForClassFields
TS 编译器标志:
"compilerOptions": {
"useDefineForClassFields": true
},