Mvvm 当使用颤振范围模型时,从模型内部深处通知侦听器
我有一个动态构建的复选框列表,每个复选框对应于模型中的一个成员变量:Mvvm 当使用颤振范围模型时,从模型内部深处通知侦听器,mvvm,model,dart,flutter,Mvvm,Model,Dart,Flutter,我有一个动态构建的复选框列表,每个复选框对应于模型中的一个成员变量: Checkbox( value: pointProtocolRecord.checkResult == 1, onChanged: (value){ pointProtocolRecord.checkResult = value ? 1 : 0; } ), 但是,调用notifyListeners()来实际更新复选框并不简单,因为pointProtocolRecord是一个嵌套在模型深
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);
只需在onChanged
处理程序中添加notifyListeners()
Checkbox(
value: pointProtocolRecord.checkResult == 1,
onChanged: (value){
pointProtocolRecord.checkResult = value ? 1 : 0;
model.notifyListeners();
}
),
但IntelliJ强调了这一呼吁,并给出了一个提示
成员“notifyListeners”只能在“package:scoped_model/scoped_model.dart”子类的实例成员中使用
从模型外部调用notifyListeners()
是否有危险
我想我可以在模型中添加一个只调用notifyListeners()
的方法,但这是一个好的解决方案吗?是否有更好的方法从模型成员层次结构的深处更新模型侦听器