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

如何实现点击单个按钮先执行函数再跳转页面?Flutter技术求助

问题分析与解决

你的代码存在两个核心问题:

  • 仅引用了createEvent函数变量,未实际调用它,正确调用需加上括号:createEvent()。
  • createEvent是异步操作(上传Firestore属于IO异步任务),你未等待它执行完成就跳转页面,导致异步操作被中断,无法完成数据上传。

修改后的代码如下:

SizedBox(
  width: 200,
  height: 75,
  child: ElevatedButton(
    onPressed: () async {
      // 调用异步函数并等待执行完成
      await createEvent();
      Navigator.pushNamed(context, '/homePage');
    },
    style: ElevatedButton.styleFrom(
        backgroundColor: Colors.red,
        shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(50))),
    child: const Text(
        'C R E A T E   E V E N T'
    ),
  ),
),

如果createEvent本身未声明为async,需确保它返回Future类型,这样才能用await等待执行完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:14:50