大家好,我是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(),
),
);
},