在任何给定的情况下,是否有任何理由使用一个而不是另一个?我试图弄清楚为什么有两种方法可以做到这一点。我指的是“带参数导航”食谱:
https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments
ModalRoute.of用于在导航历史记录中推送后构建路线。
onGenerateRoute执行相同的操作,但在导航历史记录中推送该路线之前。
ModalRoute.of对于大多数用例来说已经足够了。但是onGenerateRoute比较灵活。它允许根据参数是什么有条件地构建路由,或者类型检查参数是否有效:
onGenerateRoute: (RouteSettings settings) {
if (settings.name == '/custom-route') {
assert(settings.arguments is MyCustomArgument);
}
}
Run Code Online (Sandbox Code Playgroud)
或者:
onGenerateRoute: (RouteSettings settings) {
if (settings.name == '/users') {
if (settings.arguments != null) {
return UserDetailsRoute(id: settings.arguments);
}
else {
return UserListRoute();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1254 次 |
| 最近记录: |