如何使用 onGenerateRoute 在 URL 中显示 Flutter Web 路由名称?

How to show Flutter Web route name in the URL with onGenerateRoute?

我在 MaterialApp 上使用 onGenerateRoute 参数进行路由。

MaterialApp(
  ...
  onGenerateRoute: Router.generateRoute,
  ...
)

然后使用pushNamed().

我想在 url 中显示我的路线名称,但我无法使用 onGenerateRoute 实现。

如果我在 MaterialApp 中使用 routes:

像这样:

  MaterialApp(
    ...
    routes: {sliverScreen: (context) => SliverScreen()},
    ...
  )

有效。但我认为如果我在 MaterialApp 上提供 onGenerateRoute 是多余的。

您可以在生成的路由中添加name,它将出现在URL:

  MaterialPageRoute(
    builder: ... ,
    settings: RouteSettings(name: 'SOMENAME'))

onGenerateRoute上使用这个:

onGenerateRoute: (settings) => RouteGenerator.generateRoute(settings),

从路由文件返回 MaterialPageRoute 时只需添加设置:

return MaterialPageRoute(
    settings: settings,
    builder:(_) => HomeWeb()
);