为什么MobX在严格模式下允许我从构造函数调用的toggle方法更改标志?不应该告诉我" mobx处于严格模式,你应该使用一个动作"?
代码如下
import { useStrict, configure, autorun } from 'mobx';
import { observable, action, computed } from 'mobx';
configure({ enforceActions: true });
class Test {
@observable flag = false;
constructor() {
this.toggle();
}
toggle() {
this.flag = !this.flag;
}
}
var t = new Test();
autorun(function test () {
console.log("fired: " + t.flag); //prints fired: true
});
答案 0 :(得分:1)
感谢@ChrisEdgington,在调用构造之后,属性才变为observable,这也是逻辑的,因为在调用构造函数之前对象不存在。
你只是基本上初始化ScheduleDescriptionService
字段两次,我会拒绝你这样做。
flag
所以只使用一种但不是两种方式。