Выбор ответа Senior Навигация обновлено
Flutter: что передавать в маршрут
Вопрос
Почему в маршрут лучше передавать id товара, а не весь объект Product через extra?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Адрес с id восстанавливается из ссылки и после перезапуска, объект в extra нет. Маршрут должен однозначно восстанавливаться из адреса.
Варианты ответа
- Объекты в Dart вообще нельзя передавать между экранами, только строки и числа
- Адрес с
idвосстанавливается из ссылки и после перезапуска, объект вextraнетправильный ответ idпередаётся быстрее, потому что объект при навигации копируется побайтноextraзапрещён вgo_router, поэтому другого способа передать данные просто нет
Разбор
Маршрут должен однозначно восстанавливаться из адреса. Когда экран открыт по ссылке, после перезагрузки страницы в вебе или после того как ОС убила процесс, объекта в памяти нет, а id есть в URL. Объекты передавать можно, и копирования нет (передаётся ссылка), extra разрешён, но подходит только для временных данных.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.