上一篇Flutter页面路由及404路由拦截实现介绍了使用路由来实现页面的跳转,从而简化页面之间的耦合,并可以实现路由拦截。在实际开发中,我们经常会需要在页面跳转的时候携带路由参数,典型的例子就是从列表到详情页的时候,需要携带详情的 id,以便详情页获取对应的数据。同时,有些时候还需要返回时携带参数返回上一级,以便上级页面根据返回结果更新。本篇将介绍这两种情形的实现。
Navigator 的 push 和 pop方法
Navigator
导航器的 push
和 pop
方法可以携带参数在页面间传递,其他变形的方法也一样。pushNamed
方法原型如下:
Future<T?> pushNamed<T extends Object?>(
String routeName, {
Object? arguments,
}) {
return push<T>(_routeNamed<T>(routeName, arguments: arguments)!);
}
除了 routeName
的命名路由以外,还有个可选参数 arguments
用于在路由页面传递参数。pop
方法也一样:
void pop<T extends Object?>(