Мы передаем объект класса в MaterialPageRoute, например,
Navigator.of(context).push(
MaterialPageRoute(
builder: (ctx) => ScreenWithoutArg(),
),
);
Иногда нам нужно отправлять данные во время маршрутизации, также в некоторых случаях класс выбирается динамически. В таком сценарии, если мы добавим реализацию данных в конструктор класса, это не будет хорошей практикой кодирования.
Вместо того, чтобы передавать те же данные в RouteSettings.
Navigator.of(context).push(
MaterialPageRoute(
builder: (ctx) => ScreenWithArg(),
settings: RouteSettings(arguments: 'Arg'),
),
);
// не рекомендуется (склонен к изменению кода)
Navigator.of(context).push(
MaterialPageRoute(
builder: (ctx) => ScreenWithArg(arg1: 'argdata',arg2:'agrdata2'),
settings: RouteSettings(arguments: 'Arg'),
),
);
Спасибо, @Patrick O'Hara за выделение этой потрясающей особенности дротика.