Я использую observe package.Наблюдение объекта, содержащего список наблюдаемых?
Рассмотрим следующий пример:
class Product extends Object with ChangeNotifier {
double _price = 0.0;
@reflectable double get price => _price;
@reflectable void set price(double value) {
if (value == null) throw new ArgumentError();
_price = notifyPropertyChange(#price, price, value);
}
}
class Order extends Object with ChangeNotifier {
final ObservableList<Product> products = new ObservableList<Product>();
double get total {
double sum = 0.0;
for (var item in products) {
sum += item.price;
}
return sum;
}
}
// Synchronizes the view total with the order total.
// Or rather, I'd like it to do that.
var order = new Order();
order.changes.listen((records) {
view.total = order.total;
});
Как бы переписать этот пример, чтобы заставить его работать?
Я хотел бы получать уведомление о любых изменениях состояния объекта, даже если они происходят со списком или элементами списка.
Должен ли я управлять подписками на изменение всех элементов и самого списка? Внутри или снаружи класса Order
? Через какое имущество я могу уведомить об этом изменения? Кажется, это беспорядочно.
Я написал ['TrulyObservableList'] (http://stackoverflow.com/q/1427471/925580) с вашим подходом, отправив' ListElementChangeRecords' через дополнительный поток listElementChanges. Я решил отказаться от «package: наблюдать» на данный момент и перейти со своим собственным медленным «ChangeNotifier», который указывает только на то, что объект * * изменил, но не * что * изменился. Это также решает проблемы с вычисленными геттерами. Danke sehr! – Lucius
Gerne ;-). , , –