У меня есть динамически построенный список флажков, каждый из которых соответствует переменной-члену в моей модели:
Checkbox(
value: pointProtocolRecord.checkResult == 1,
onChanged: (value){
pointProtocolRecord.checkResult = value ? 1 : 0;
}
),
Однако вызов notifyListeners()
для фактического обновления флажков не является простым, поскольку pointProtocolRecord
объект, вложенный глубоко в модель:
ChecklistPointProtocolRecord pointProtocolRecord =
model
.activeChecklistProtocol
.controlPoints
.singleWhere((k) => k.checklistPointGuid == record.checklistPointGuid);
Простое добавление notifyListeners()
в обработчик onChanged
работает нормально:
Checkbox(
value: pointProtocolRecord.checkResult == 1,
onChanged: (value){
pointProtocolRecord.checkResult = value ? 1 : 0;
model.notifyListeners();
}
),
, но IntelliJ подчеркивает вызов и дает подсказку, чтоговорит
Член 'notifyListeners' может использоваться только внутри членов экземпляра подклассов 'пакета: scoped_model / scoped_model.dart'
Есть ли какая-либо опасность, вызывающая notifyListeners()
снаружи Модель?
Полагаю, я мог бы добавить в модель метод, который вызывает только notifyListeners()
, но разве это хорошее решение?Существуют ли более эффективные способы обновления слушателей моделей из глубины иерархии членов моделей?