Выбор ответа Senior Навигация обновлено

Flutter: что передавать в маршрут

Вопрос

Почему в маршрут лучше передавать id товара, а не весь объект Product через extra?

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

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

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

Коротко

Правильный ответ: Адрес с id восстанавливается из ссылки и после перезапуска, объект в extra нет. Маршрут должен однозначно восстанавливаться из адреса.

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

  1. Объекты в Dart вообще нельзя передавать между экранами, только строки и числа
  2. Адрес с id восстанавливается из ссылки и после перезапуска, объект в extra нетправильный ответ
  3. id передаётся быстрее, потому что объект при навигации копируется побайтно
  4. extra запрещён в go_router, поэтому другого способа передать данные просто нет

Разбор

Маршрут должен однозначно восстанавливаться из адреса. Когда экран открыт по ссылке, после перезагрузки страницы в вебе или после того как ОС убила процесс, объекта в памяти нет, а id есть в URL. Объекты передавать можно, и копирования нет (передаётся ссылка), extra разрешён, но подходит только для временных данных.

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

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

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