如何实现点击后基于条件的Get.to()路由跳转?
实现带条件的Get.to()路由跳转
你可以通过在Get.to()的参数中加入条件判断逻辑,实现不同条目跳转不同页面的需求,具体修改如下:
修改后的完整代码
onPressed: () { Navigator.of(context).pop(false); Timer( Duration(milliseconds: 350), () { // 定义需要跳转到原生PageView的特定条目标识,比如用action的名称或类型 const targetNativePages = ['我的主页', '设置中心']; // 替换成你实际的条目标识 Widget targetPage; if (targetNativePages.contains(action.name)) { // 跳转到原生视图的page_view.dart页面 targetPage = PageViewPage(); // 替换成你实际的原生页面组件类名 } else { // 默认跳转到WebviewService targetPage = WebviewService( urlName: action.name!, urlPath: action.link!, ); } Get.to( targetPage, transition: Transition.fadeIn, duration: Duration(milliseconds: 500), ); }, ); },
关键说明
- 先定义
targetNativePages数组,存放需要跳转到原生页面的条目标识(比如条目名称、类型ID等,根据实际业务调整)。 - 通过
contains方法判断当前点击的条目是否属于原生页面范畴,动态赋值targetPage变量。 - 最后把
targetPage传入Get.to(),保留原来的过渡动画和时长设置。
如果你的判断条件不是基于action.name,而是其他属性(比如action.link或自定义的action.type),只需修改if判断条件即可,示例:
// 基于action的类型字段判断 if (action.type == 'native_page') { targetPage = PageViewPage(); }
内容的提问来源于stack exchange,提问作者1988
相关产品推荐
相关产品推荐

