mobx 无法获得管理 -- 在扩展 class 上?
mobx Cannot obtain administration -- on extended class?
我有下面这个使用 extends
关键字的 ES6 class 示例。
import { computed, observable, observe } from "mobx";
class Base {
@observable position = 1
@computed get doublePosition(){
return this.position * 2
}
}
class Extended extends Base{
constructor(){
super()
observe(this.doublePosition, () => {
debugger;
})
}
}
const test = new Extended();
这会引发错误 Uncaught Error: [mobx] Cannot obtain administration from 2
我相信这是因为子 class Extended
正试图观察父 class 上的 属性。有没有规律。我没想到这个守卫是什么原因?在这个例子中有什么方法可以允许对 subclass 进行管理吗?是否有建议的模式来处理这个问题?我的代码库严重依赖 extends
关键字来实现混合行为。
我有下面这个使用 extends
关键字的 ES6 class 示例。
import { computed, observable, observe } from "mobx";
class Base {
@observable position = 1
@computed get doublePosition(){
return this.position * 2
}
}
class Extended extends Base{
constructor(){
super()
observe(this.doublePosition, () => {
debugger;
})
}
}
const test = new Extended();
这会引发错误 Uncaught Error: [mobx] Cannot obtain administration from 2
我相信这是因为子 class Extended
正试图观察父 class 上的 属性。有没有规律。我没想到这个守卫是什么原因?在这个例子中有什么方法可以允许对 subclass 进行管理吗?是否有建议的模式来处理这个问题?我的代码库严重依赖 extends
关键字来实现混合行为。