Javascript nodejs中的mobx:观察原语数组
我是mobx的新手,我一直在用我自己的方式处理文档。在阅读了Javascript nodejs中的mobx:观察原语数组,javascript,typescript,mobx,Javascript,Typescript,Mobx,我是mobx的新手,我一直在用我自己的方式处理文档。在阅读了observable和autorun之后,我创建了一个小型测试平台,在本地使用该功能 在nodejs 13.12和mobx 5.15.4中执行以下代码时,autorun函数只调用一次。它不会对最后一行作出反应,在最后一行中数字会被更新 const mobx = require('mobx') const {observable, autorun} = mobx; // just to make sure it is imported
observable
和autorun
之后,我创建了一个小型测试平台,在本地使用该功能
在nodejs 13.12和mobx 5.15.4中执行以下代码时,autorun函数只调用一次。它不会对最后一行作出反应,在最后一行中数字会被更新
const mobx = require('mobx')
const {observable, autorun} = mobx;
// just to make sure it is imported
console.log(observable);
var numbers = observable([1, 2, 3]);
autorun(() => {
console.log(numbers);
});
numbers.push(4);
这似乎是本地运行时特有的问题。起初,我对这个问题的措辞更为笼统,但在浏览器中执行时,代码工作正常。这只是上面的一个特定示例,它在nodejs中失败。非常感谢@felixmosh指出该问题无法在浏览器中重现
就像@observer decorator/函数一样,autorun将只观察在所提供函数执行期间使用的数据
事实上,我已经运行了你的代码,自动运行的效果和预期的一样
//示例2,原语数组
//观察计算值、工作
常数{
可见的,
计算,
自动运行
}=mobx;
var数=可观察([1,2,3]);
自动运行(()=>{
控制台日志(编号);
});
数字推送(4)//自动运行不会触发
哦,你说得对。但在我的环境中,它真的不起作用。我正在用typescript编译它,并在node中执行它。它似乎是特定于运行时的,我将相应地更新我的问题