ScopedModelDescendant поднимает NoSuchMethodError - PullRequest
0 голосов
/ 14 февраля 2020

Ошибка вывода:

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

Сценарий: у меня есть несколько классов, которые расширяют модель, соединенную в один основной класс (т.е. MainModel). Теперь я обновил переменную в одном из классов, которые я расширил из модели «модели с областью видимости». Когда я пытался получить доступ к этой переменной после перехода к другому компоненту, он вызывает «NoSuchMethodError» => «Переменная» получателя была вызвана для нуля. Может ли это быть ошибкой?

Тот, который заполняет переменную:

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

newPage компонент пытается получить переменную "sampleVariable":

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

И странная часть, это печатает значение переменной "sampleVariable", когда кнопка "Restart" сработала от действий трепетания vscode.

1 Ответ

0 голосов
/ 14 февраля 2020

Похоже, у меня есть дубликат объекта класса во всем приложении. Я исправил это, полагаясь только на один объект класса одного класса, который расширяет модель "Scoped Model".

...