本文代码地址: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的代码如下
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});
}
-- 至此,可以实现无上下文的跳转,和返回,并携带返回参数 --