Выбор ответа Senior Управление состоянием обновлено
Riverpod: autoDispose
Вопрос
Что делает модификатор autoDispose у провайдера Riverpod?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Освобождает состояние, когда у провайдера не осталось слушателей; при чтении создаст заново. Без autoDispose состояние живёт, пока жив контейнер (обычно всё приложение).
Варианты ответа
- Освобождает состояние через фиксированное время, даже если его продолжают слушать
- Удаляет неиспользуемый провайдер из кода при сборке release, уменьшая размер приложения
- Отменяет все HTTP-запросы приложения, когда пользователь закрывает текущий экран
- Освобождает состояние, когда у провайдера не осталось слушателей; при чтении создаст зановоправильный ответ
Разбор
Без autoDispose состояние живёт, пока жив контейнер (обычно всё приложение). С autoDispose оно уничтожается, когда последний слушатель отписался: например, закрыли экран деталей. ref.onDispose позволяет отменить запрос или подписку, а ref.keepAlive() удержать результат. По таймеру состояние само не удаляется, а на запросы вне этого провайдера модификатор не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.