You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击后基于条件的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:35:33