Выбор ответа Junior Жизненный цикл спрашивают часто обновлено
Flutter: что делать в dispose
Вопрос
Что из этого обязательно сделать в dispose?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Освободить свои контроллеры и отменить подписки, которые создал этот State. dispose освобождает то, чем владеет этот State: свои контроллеры, подписки, слушатели, таймеры. setState в dispose запрещён.
Варианты ответа
- Освободить свои контроллеры и отменить подписки, которые создал этот
Stateправильный ответ - Вызвать
setState, чтобы очистить интерфейс перед удалением экрана из дерева - Освободить контроллеры, которые пришли через параметры виджета от родителя
- Сохранить состояние, вызвав
buildпоследний раз перед удалением элемента
Разбор
dispose освобождает то, чем владеет этот State: свои контроллеры, подписки, слушатели, таймеры. setState в dispose запрещён. Контроллер, переданный родителем, освобождает родитель: иначе он сломается у других пользователей. build после dispose не вызывается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.