Выбор ответа Junior Виджеты и три дерева спрашивают часто обновлено
Flutter: что перестраивает setState
Вопрос
Что именно перестроится после setState в State виджета CounterCard?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: build этого State и возвращённое им поддерево, кроме неизменных const. setState помечает элемент этого State грязным, на следующем кадре вызывается его build.
Варианты ответа
buildэтогоStateи возвращённое им поддерево, кроме неизменныхconstправильный ответ- Всё приложение от
MaterialApp, ведь Flutter не знает, где используется значение - Только виджет
Text, где выводится число, остальные элементы не трогаются - Родитель
CounterCardи все его потомки, чтобы родитель получил новые размеры
Разбор
setState помечает элемент этого State грязным, на следующем кадре вызывается его build. Дальше элементы детей сравнивают новые виджеты со старыми и обновляются; идентичные const-экземпляры пропускаются. Родитель не перестраивается. Flutter не знает, какой именно виджет использует переменную, поэтому вызывает build целиком: отсюда совет держать State маленьким.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Flutter: Scaffold.of не находит Scaffold
Следующий вопрос
Ключи во Flutter: зачем и какие
Ещё по теме «Виджеты и три дерева»
- Flutter: когда элемент переиспользуется
- Flutter: что такое BuildContext
- Виды ключей во Flutter
- StatelessWidget и StatefulWidget
- Widget, Element, RenderObject
- Flutter: когда нужен GlobalKey
- Flutter: удаление элемента списка без ключей
- Ключи и их назначение