Класс MyApp
расширяет StatefulWidget, что означает, что этот виджет хранит изменяемое состояние. Когда виджет MyApp впервые вставляется в дерево, платформа вызывает функцию createState()
, чтобы создать новый экземпляр _MyAppState
, чтобы связать его с этим местоположением в дереве. (Обратите внимание, что подклассы State обычно именуются с начальными подчеркиваниями, чтобы указать, что они являются частными деталями реализации.) Когда родительский объект этого виджета перестраивается, родительский объект создает новый экземпляр MyApp
, но платформа повторно использует экземпляр _MyAppState
, который является уже в дереве, вместо повторного вызова createState.
Чтобы получить доступ к свойствам текущего MyApp
, _MyAppState
может использовать его widget property
. Если родитель перестраивает и создает новый MyApp
, _MyAppState
перестраивается с новым значением виджета. Если вы хотите получать уведомления при изменении свойства виджета, переопределите функцию didUpdateWidget()
, которая передается как oldWidget, чтобы позволить вам сравнивать старый виджет с текущим виджетом.
Теперь согласно документам: свойство виджета
Это свойство инициализируется платформой перед вызовом
initState. Если родитель обновляет это местоположение в дереве до нового
виджет с тем же runtimeType и Widget.key, что и текущий
конфигурации, среда обновит это свойство, чтобы сослаться на
новый виджет, а затем вызвать didUpdateWidget, передавая старый
конфигурация в качестве аргумента.
ссылка