大家好,我是 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(),
),
);
},
但什么也沒發生我不知道是什么問題,也許我以錯誤的方式呼叫了我的函式?誰能幫我這個?
uj5u.com熱心網友回復:
試試這個
onTap: ()async{
await signup();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PhoneVerification(),
),
);
},
uj5u.com熱心網友回復:
異步操作讓您的程式在等待另一個操作完成的同時完成作業,請在此處閱讀更多相關資訊:https : //dart.dev/codelabs/async-await。
如果您希望執行該函式然后推送到另一個頁面,您需要將 signup() 設為 Future 并在 onTap() 函式中添加等待。
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(),
),
);
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/374330.html
上一篇:為什么這個手勢檢測器不能用作敲擊
下一篇:在Dart中的函式引數中鍵入串列
