所以mobx 6出局了,我正在尝试实现这样的基本存储:
export class AuthStore {
rootStore
value
constructor(rootStore) {
makeObservable(this, {
value:observable
})
this.rootStore = rootStore
}
}
和
class RootStore {
constructor () {
this.authStore = new AuthStore(this)
}
}
const stores = new RootStore()
我收到一个错误:无法修饰未定义的属性:“值”
但是如果我将AuthStore带到RootStore之外
const authStore = new AuthStore()
一切正常..我尝试阅读更多的内容,然后再阅读mobx 6t文档,但没有任何内容
想知道我在做什么错! 谢谢!
答案 0 :(得分:0)
答案在于错误消息-
无法修饰未定义属性:“值”
您的值为keywords
,mobx对此表示怀疑。简单的解决方法是将您的值初始化为null:
undefined
很容易看出您为什么为此受害-mobx documentation itself实际上使您相信您所做的就是犹太洁食-
export class AuthStore {
rootStore
value = null;
constructor(rootStore) {
this.rootStore = rootStore
makeObservable(this, {
value:observable
})
}
}
但是,如果您尝试使用此代码,则会得到相同的错误:|。
如果我将AuthStore放在RootStore之外,那么一切正常
这让我有些烦恼-我无法解释为什么会发生这种情况!但是I couldn't reproduce it either-无论在什么地方初始化auth存储,我都会得到相同的行为。
更多背景信息-mobx在后台使用import { makeObservable, observable, computed, action } from "mobx"
class Doubler {
value
constructor(value) {
makeObservable(this, {
value: observable,
double: computed,
increment: action
})
this.value = value
}
get double() {
return this.value * 2
}
increment() {
this.value++
}
}
来尝试确定Object.getOwnPropertyDescriptor
属性是什么-当值为value
时,返回:
undefined