Выбор ответа Middle Жизненный цикл спрашивают часто обновлено
Flutter: запрос в build
Вопрос
Почему нельзя запускать сетевой запрос внутри build?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: build вызывается много раз, и каждый вызов отправит новый запрос. build должен быть чистым и быстрым: фреймворк вызывает его когда угодно и сколько угодно.
Варианты ответа
buildвызывается много раз, и каждый вызов отправит новый запросправильный ответbuildвыполняется в отдельном изоляте, где нет доступа к сети и плагинамbuildвызывается ровно один раз, и ответ некуда будет положить при обновлении- Компилятор запрещает
awaitвbuild, а обычный вызов безawaitвполне безопасен
Разбор
build должен быть чистым и быстрым: фреймворк вызывает его когда угодно и сколько угодно. Запрос в нём дублируется на каждом перестроении. Запросы запускают в initState, didUpdateWidget (при смене параметров) или в стейт-менеджере. Изолятов у build нет, а «один раз» как раз неверно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.