Navigator.pu sh () и Navigator.pushNamed () при передаче данных на экран - PullRequest
0 голосов
/ 29 февраля 2020

Я хотел бы передать данные на другой экран. Согласно документам при использовании именованных маршрутов мне нужно использовать Аргументы и использовать:

Navigator.pushNamed(
  context,
  NextScreen.route,
  arguments: NextScreenArgs("pew"),
);

Однако то же самое (?) Может быть достигнуто только с помощью:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => NextScreen("pew"),
  ),
);

Есть ли разница или преимущество при использовании pushNamed?

1 Ответ

0 голосов
/ 29 февраля 2020

Команда Flutter обсуждает маршрутизацию на github. Мне нравится это объяснение:

Хотя навигация без использования именованных маршрутов подходит для небольших проектов, в более сложных приложениях добавляется дублирование кода. Это особенно верно, если у вас есть защита маршрута, позволяющая только зарегистрированным пользователям заходить на определенные страницы или любой другой вид логики c, который должен запускаться при навигации пользователя.

Также вы можете прочитать больше обсуждений здесь: https://github.com/flutter/flutter/issues/3867

...