如何用ontap-flutter调用异步函数



大家好,我是flutter的新手,我正在使用api,所以我创建了一个异步函数,如下所示:

signup() async {
var response = await http.post(Uri.parse(ROOT), body: {
"email": emailController.text,
"action":'Sign_Up',
"phone":phoneController.text,
});
}

并用inkwell ontap调用,如下所示:


InkWell(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
onTap: (){
signup();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhoneVerification(),
),
);
},

但什么都没发生我不知道出了什么问题也许我调用函数的方式不对?有人能帮我吗?

异步操作让您的程序在等待另一个操作完成的同时完成工作,请在此处阅读更多信息:https://dart.dev/codelabs/async-await.

如果你想执行这个函数,然后推到另一个页面,你需要将signup((设为Future,并在onTap((函数中添加wait。

Future signup() async {
var response = await http.post(Uri.parse(ROOT), body: {
"email": emailController.text,
"action":'Sign_Up',
"phone":phoneController.text,
});
}
onTap: ()async{
await signup();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhoneVerification(),
),
);
},

尝试使用此

onTap: ()async{
await signup();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhoneVerification(),
),
);
},

最新更新