我有课@observable
(所有例子都是打字稿/伪代码)
class Page {
id: number = 0;
@observable
isVisible: boolean = false;
}
let array = [new Page(), new Page(), new Page()];
还有一些功能,例如:
changeVisibility(obj)
{
//ajax call like .post("/api/changeVisibility/", {id:obj.id, isVisible:obj.isVisible})
}
我想isVisible
对任何对象的变化做出反应。
我可以枚举数组并制作如下内容:
array.forEach(el => {
reaction(
() => el.isVisible,
isVis => changeVisibility(el);
});
});
但是我可以用一个功能做到这一点吗?
一种“对元素的属性变化做出反应的数组观察者”。
像这样的东西:
reaction(array, //source
(el) => el.isVisible, //observable to react
(el) => changeVisibility(el) //callback with object
)