[英]Make setter an action using Mobx makeObservable in presence of getter
在 mobx 中,如果我想使用 interheritance,我需要使用 makeObservable 而不是 makeAutoObservable。 但是使用 makeObservable 需要我命名改變 state 的動作,所以我如何聲明一個 setter 是一個動作,因為它與 getter 具有相同的名稱?
換句話說,我寫 SETTER_FOR_MYVAR 的地方是什么,或者有什么方法可以達到同樣的效果?
class BaseClass {
_myvar = null
set myvar(val) {
this._myvar = val;
}
get myvar() {
return this._myvar;
}
other_action() {
this._myvar = 5;
}
constructor() {
makeObservable(this, {
_myvar: observable,
other_action: action,
SETTER_FOR_MYVAR: action
});
}
}
是的,我知道我可以把它交給另一個助手 function _myvar_setter 並聲明一個動作,但這看起來很難看,我希望有更好的方法。
只需將myvar
標記為computed
,一切都應該開箱即用(如果我理解正確的話):
constructor() {
makeObservable(this, {
_myvar: observable,
myvar: computed,
other_action: action
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.