目前我有一个计算的getter xyz。为了安排新的计算,我打电话给notifyProperty(this, #xyz);
。
在最新版本的 observe 中,不推荐使用notifyProperty
。我怎样才能更换它?文档建议使用this.notifyPropertyChange(#xyz, oldValue, newValue);
。问题是,我没有oldValue
(而不是直接newValue
)因为计算了getter。
答案 0 :(得分:4)
suggestion from the devs是将oldValue
保留在私有变量中以供参考。对于newValue
,您实际上可以只传递getter,它将使用新值计算它。
您将看到类似于此的类:
class MyElement extends Observable {
@observable var foo, bar;
var _oldValue;
@reflectable get xyz => foo + bar;
MyElement() {
// we use the xyz getter to compute its own new value
// notifyPropertyChange returns the new value for convenience :)
notifyXyz() { _oldValue = notifyPropertyChange(#xyz, _oldValue, xyz); }
onPropertyChange(this, #foo, notifyXyz);
onPropertyChange(this, #bar, notifyXyz);
}
}