【问题标题】:Updating dynamically computed property in polymer.dart在 polymer.dart 中更新动态计算的属性
【发布时间】:2014-12-09 09:40:34
【问题描述】:

我有一个场景,我有一个使用 polymer.dart 进行数据绑定的属性,但它没有自己的支持字段。相反,它在运行时由依赖于许多其他内部条件的逻辑动态评估。因此,当其他逻辑要求时,我想告诉数据绑定更新值。在 C#/XAML 中,NotifyPropertyChange 不需要您传入新旧值,因此很容易解决这个问题。但是在 polymer.dart 中,我们确实需要始终传递新旧值,这对于动态评估的属性是不可能的(或者至少出于性能原因不是优选的)。我们将如何在 polymer.dart 中处理这个问题?

这是一个伪示例。问题是我应该放什么???字段?

class MyBoundClass extends Observable {

    void run() {
        ... logic, sets values in several internal non-observable objects...
        notifyPropertyChange(#status, ???, ???);
    }

    String get status {
        result = ... logic, evaluates values from several internal non-observable objects...
        return result;
    }
}

我想一种解决方案是简单地在 MyBoundClass 中引入另一个支持字段。但我真正想要的只是更新绑定,我不明白为什么它需要传递旧值。在我看来,如果你只是想更新绑定,旧值是不相关的?

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

    应该将 null 作为旧值传递。

    【讨论】:

    • 我认为这在所有情况下都有效,除非新值也为空?还是 null 作为旧值得到特殊处理,因此 Polymer 会忽略旧值和新值之间的等效检查?
    • 据我所知,当新值也为空时,您是正确的。
    猜你喜欢
    • 2014-04-06
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2018-01-06
    • 2021-01-18
    • 2019-11-09
    • 2019-04-18
    相关资源
    最近更新 更多