onGenerateRoute 被多次调用

Aur*_*tas 7 routes flutter

在我的主要方法中,我有

onGenerateRoute: (route) {
        print(route);
        return Router.generateRoute(route);
      }
Run Code Online (Sandbox Code Playgroud)

如果我输入 URL,https://myurl.com/#/foo/bar我可以看到多次调用打印。

/
Run Code Online (Sandbox Code Playgroud)
/foo
Run Code Online (Sandbox Code Playgroud)
/foo/bar
Run Code Online (Sandbox Code Playgroud)

我有一个问题,因为我想输入bar路径,但它被输入了foo

任何想法我应该如何进行?

use*_*956 11

情况变得更糟。将 initalRoute 设置为/home/1/2/3/4/5,onGenerateRoute 将被调用 7 次。

你可以通过以下方法让它变得不那么可怕:

MaterialApp app;

app = MaterialApp(
    onGenerateInitialRoutes: (initialRoute)=>[app.onGenerateRoute(RouteSettings(name:initialRoute))],
    initialRoute: initial,
    onGenerateRoute: app.onGenerateRoute);

Run Code Online (Sandbox Code Playgroud)

这可以避免您多次调用 Route 的 initState 以及路径中每个“/”一次的 onGenerateRoute 。但是,如果您在浏览器栏中提供路径,仍然会调用 onGenerateRoute 两次。

我已经提交了错误报告:https ://github.com/flutter/flutter/issues/71786