Выбор ответа Senior Управление состоянием обновлено

Riverpod: autoDispose

Вопрос

Что делает модификатор autoDispose у провайдера Riverpod?

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

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

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

Коротко

Правильный ответ: Освобождает состояние, когда у провайдера не осталось слушателей; при чтении создаст заново. Без autoDispose состояние живёт, пока жив контейнер (обычно всё приложение).

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

  1. Освобождает состояние через фиксированное время, даже если его продолжают слушать
  2. Удаляет неиспользуемый провайдер из кода при сборке release, уменьшая размер приложения
  3. Отменяет все HTTP-запросы приложения, когда пользователь закрывает текущий экран
  4. Освобождает состояние, когда у провайдера не осталось слушателей; при чтении создаст зановоправильный ответ

Разбор

Без autoDispose состояние живёт, пока жив контейнер (обычно всё приложение). С autoDispose оно уничтожается, когда последний слушатель отписался: например, закрыли экран деталей. ref.onDispose позволяет отменить запрос или подписку, а ref.keepAlive() удержать результат. По таймеру состояние само не удаляется, а на запросы вне этого провайдера модификатор не влияет.

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

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

Термины по теме