Проблема с отображением значения, содержащегося в InheritedWidget - PullRequest
0 голосов
/ 04 апреля 2020

Я работаю во Флаттере в течение нескольких месяцев, и я еще не очень опытен. Сейчас я работаю над приложением, которое я не создавал с самого начала, и у меня странная проблема, к сожалению, я не могу вставить слишком много фрагментов кода, но я пытаюсь объяснить неправильное поведение. Состояние приложения содержится в InheritedWidget, который вызывается перед всеми остальными. Например, в этом InheritedWidget есть значение, которое всегда должно быть видно в верхней части приложения (в панели приложений). Проблема заключается в том, что если во время выполнения это значение изменяется в InheritedWidget, представление отображает предыдущее значение (как если бы оно не обновлялось), но если я делаю Navigator.pu sh () для новой страницы, AppBar показывает правильное значение (т.е. обновленное). Если я попадаю на предыдущую страницу, старое значение снова появляется в панели приложений. Если поместить приложение в фоновом режиме и вернуть его на передний план, наконец-то появится правильное значение.

Кажется, что представление не обновляется, даже если значение изменяется в InheritedWidget. Я указываю, что перед отображением это значение извлекается непосредственно из InheritedWidget с помощью context.dependOnInheritedWidgetOfExactType<InheritedWidgetName>(). Я также указываю, что «updateShouldNotify» устанавливается следующим образом: @override bool updateShouldNotify(Session oldWidget) { return true; }

Я хотел бы спросить, если кто-нибудь знает, что может быть причиной этой проблемы.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...