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()
的方法,但这是一个好的解决方案吗?是否有更好的方法从模型成员层次结构的深处更新模型侦听器