FlutterWeb-03-路由管理

255 阅读1分钟

本文代码地址:gitee.com/gyy_xiaobai…

一,flutter最原生的写法:

跳转界面

Map<String, int>? map;
void _toLoginPage() {
  var result = Navigator.pushNamed(context, RouteName.loginPage);
  result.then((value) => {
    map = (value as Map<String, int>),
    debugPrint(map?.length.toString()),
    debugPrint(map?.toString()),
  });
}

返回上级界面

void _goBack() {
  Navigator.pop(context, {"name": 200});
}

跳转和返回,都需要上下文,很不方便;我们将路由方法简单封装,实现无上下文跳转

二,无上下文路由

1,我们修改main.dart文件里的App代码,和Routers.dart的代码如下

1.png

2.png

2,实现无上下文的路由跳转
Map<String, int>? map;
void _toLoginPage2() {
  var result = Routers.push(RouteName.loginPage);
  result.then((value) => {
    map = (value as Map<String, int>),
    debugPrint(map?.length.toString()),
  });
}
void _goBack2() {
  Routers.pop({"name": 200});
}

-- 至此,可以实现无上下文的跳转,和返回,并携带返回参数 --