onGenerateRoute多次调用

时间:2019-09-12 16:30:09

标签: flutter routes

我的主要方法是

onGenerateRoute: (route) {
        print(route);
        return Router.generateRoute(route);
      }

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

/
/foo
/foo/bar

我遇到了一个问题,因为我想输入bar路径,但是却输入了foo

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

1 个答案:

答案 0 :(得分:0)

情况变得更糟。将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);

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

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