ScopedModelDescendant引发NoSuchMethodError

时间:2020-02-14 09:37:22

标签: flutter dart scoped-model

输出错误:

The following NoSuchMethodError was thrown building ScopedModelDescendant<MainModel>(dirty, dependencies: [_InheritedModel<MainModel>]):
The getter 'sampleVariable' was called on null.
Receiver: null
Tried calling: sampleVariable

场景: 我有多个将Model链接到一个主类(即MainModel)的类。现在,我已经更新了我从“范围模型”的模型扩展的一个类中的变量。当我导航到另一个组件后尝试访问该变量时,它引发了“ NoSuchMethodError” =>在空值上调用了“ getter”变量。那可能是个错误吗?

填充变量的那个:

...
sampleVariable = 'NewData';
notifyListeners();
Navigator.pushNamed(context, 'newPage');

newPage组件尝试获取变量“ sampleVariable”:

...
ScopedModelDescendant<MainModel>(
          builder: (BuildContext context, Widget child, MainModel model) {
        print(model.sampleVariable);
...
}),
...

更奇怪的是,当从vscode flutter动作触发“重新启动”按钮时,它将打印变量“ sampleVariable”值。

1 个答案:

答案 0 :(得分:0)

好像我在整个应用程序中都有一个重复的类对象。我仅依靠扩展“范围模型”模型的单个类的一个类对象来解决此问题。