如何实现点击单个按钮先执行函数再跳转页面?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
相关产品推荐
相关产品推荐

