首页 > 解决方案 > onGenerateRoute 多次调用

问题描述

在我的主要方法中,我有

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

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

/
/foo
/foo/bar

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

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

标签: flutterroutes

解决方案


它变得更糟。将 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


推荐阅读