如何替换已弃用的通知属性?

时间:2013-10-23 17:59:47

标签: dart dart-polymer

目前我有一个计算的getter xyz。为了安排新的计算,我打电话给notifyProperty(this, #xyz);

在最新版本的 observe 中,不推荐使用notifyProperty。我怎样才能更换它?文档建议使用this.notifyPropertyChange(#xyz, oldValue, newValue);。问题是,我没有oldValue(而不是直接newValue)因为计算了getter。

1 个答案:

答案 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);
  }
}