我的主要方法是
onGenerateRoute: (route) {
print(route);
return Router.generateRoute(route);
}
如果我使用https://myurl.com/#/foo/bar
输入URL,则可以看到多次打印。
/
/foo
/foo/bar
我遇到了一个问题,因为我想输入bar
路径,但是却输入了foo
。
任何想法我应该如何进行?
答案 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。