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

Flutter/Dart中如何将onTap()的值从一个页面传递到另一个页面

Flutter 页面跳转传值实现方案

你这个场景属于最基础的页面间参数传递,直接用构造函数传参即可实现,步骤如下:

第一步:给目标页面XDSections增加接收参数的构造函数

在XDSections页面的定义代码中,声明需要接收的参数并配置构造函数:

class XDSections extends StatefulWidget {
  // 声明接收的参数,可根据实际需求调整参数类型、增加多个参数
  final String courseName;
  // 构造函数:required代表该参数为必填,不需要必填可删除required并给参数设默认值
  const XDSections({super.key, required this.courseName});

  @override
  State<XDSections> createState() => _XDSectionsState();
}

// 在页面State中使用参数时,直接调用widget.courseName即可,示例:
class _XDSectionsState extends State<XDSections> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        // 直接使用传递过来的课程名
        child: Text(widget.courseName),
      ),
    );
  }
}

第二步:修改Courses页面的跳转逻辑,传参到目标页面

调整你现有onTap中的跳转代码,把获取到的课程名传入XDSections的构造函数:

onTap: () {
  // 先拿到要传递的课程名
  String targetCourseName = doc["Course name"];
  getCourseName(targetCourseName);
  Navigator.push(
    context,
    PageTransition(
      type: PageTransitionType.rightToLeft,
      // 跳转时把参数传入构造函数
      child: XDSections(courseName: targetCourseName),
    ),
  );
},

补充说明

  • 如果有多个参数需要传递,只需要在XDSections的类定义中新增对应字段,在构造函数中添加对应参数,跳转时同步传值即可
  • 若传递的参数可能为空,可给构造函数参数设置默认值避免空异常,示例:this.courseName = "未命名课程"
  • 如果该参数需要在多个不相关的页面/组件中共享使用,可选用Provider、GetX等状态管理方案做全局存储,你当前的单跳转场景不需要用到,构造函数足够满足需求

内容的提问来源于stack exchange,提问作者user13133459

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:24:00