Выбор ответа Junior Жизненный цикл спрашивают часто обновлено

Flutter: что делать в dispose

Вопрос

Что из этого обязательно сделать в dispose?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Освободить свои контроллеры и отменить подписки, которые создал этот State. dispose освобождает то, чем владеет этот State: свои контроллеры, подписки, слушатели, таймеры. setState в dispose запрещён.

Варианты ответа

  1. Освободить свои контроллеры и отменить подписки, которые создал этот Stateправильный ответ
  2. Вызвать setState, чтобы очистить интерфейс перед удалением экрана из дерева
  3. Освободить контроллеры, которые пришли через параметры виджета от родителя
  4. Сохранить состояние, вызвав build последний раз перед удалением элемента

Разбор

dispose освобождает то, чем владеет этот State: свои контроллеры, подписки, слушатели, таймеры. setState в dispose запрещён. Контроллер, переданный родителем, освобождает родитель: иначе он сломается у других пользователей. build после dispose не вызывается.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.