Я работаю во Флаттере в течение нескольких месяцев, и я еще не очень опытен. Сейчас я работаю над приложением, которое я не создавал с самого начала, и у меня странная проблема, к сожалению, я не могу вставить слишком много фрагментов кода, но я пытаюсь объяснить неправильное поведение. Состояние приложения содержится в InheritedWidget, который вызывается перед всеми остальными. Например, в этом InheritedWidget есть значение, которое всегда должно быть видно в верхней части приложения (в панели приложений). Проблема заключается в том, что если во время выполнения это значение изменяется в InheritedWidget, представление отображает предыдущее значение (как если бы оно не обновлялось), но если я делаю Navigator.pu sh () для новой страницы, AppBar показывает правильное значение (т.е. обновленное). Если я попадаю на предыдущую страницу, старое значение снова появляется в панели приложений. Если поместить приложение в фоновом режиме и вернуть его на передний план, наконец-то появится правильное значение.
Кажется, что представление не обновляется, даже если значение изменяется в InheritedWidget. Я указываю, что перед отображением это значение извлекается непосредственно из InheritedWidget с помощью context.dependOnInheritedWidgetOfExactType<InheritedWidgetName>()
. Я также указываю, что «updateShouldNotify» устанавливается следующим образом:
@override
bool updateShouldNotify(Session oldWidget) {
return true;
}
Я хотел бы спросить, если кто-нибудь знает, что может быть причиной этой проблемы.
Заранее спасибо.