我正在寻找一种方法来获取 Meteor 中反应式数据源的旧值。说我有这个代码:
const foo = new ReactiveVar(1);
Tracker.autorun(() => {
const fooNewVal = foo.get();
if (/* compare based on fooNewVal value */) {
// do something
}
});
foo.set(2);
foo.set(3);
foo.set(4);
我想要的是以某种方式获取 的旧值foo
,使用这个旧值和新值来决定 if 语句的执行,例如:
const foo = new ReactiveVar(1);
Tracker.autorun(() => {
const fooNewVal = foo.get();
const fooOldVal = foo.getOld();
if (fooNewVal - fooOldVal === 1) {
// do something
}
if (fooNewVal - fooOldVal === 2) {
// do something
}
});
foo.set(2);
foo.set(3);
我知道我可以使用普通变量在函数末尾存储旧值autorun
:
const foo = new ReactiveVar(1);
let oldValue = 1;
Tracker.autorun(() => {
const fooNewVal = foo.get();
if (fooNewVal - oldValue === 1) {
// do something
}
if (fooNewVal - oldValue === 2) {
// do something
}
oldValue = fooNewVal;
});
foo.set(2);
foo.set(3);
虽然它有效,但对我来说看起来并不“正确”。我搜索了 Atmosphere 和 Npm,但找不到解决方案。你知道解决这个问题的任何解决方案或包/模块吗?