[英]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.