gpt4 book ai didi

Flutter 在异步函数中调用 Navigator.pop

转载 作者:行者123 更新时间:2023-12-05 07:09:04 25 4
gpt4 key购买 nike

我有一个异步函数,它在按下按钮时被调用。此函数执行 http put 请求,如果结果成功,我需要弹出到上一个屏幕。

void updateSurv() async{

http.Response result;
result = await http.put(
"http://10.0.2.2:8000/emergencies/${widget.id}/put",
body: {

"title" : titleController.text,
"Content" : contentController.text,

}
);

if(json.decode(result.body)["result"] == "Success"){

print("success");
Navigator.of(context).pop();

}

}

服务器上的值得到更新,print("success"),但应用程序不会弹出到上一个屏幕。

所以我的问题是,当从异步函数调用时 Navigator 类不工作吗?

最佳答案

你必须使用.then()函数来执行这样的操作。

updateSurv().then((result) {
if (json.decode(result.body)["result"] == "Success") {
print("success");
Navigator.of(context).pop();
}
});

Future<dynamic> updateSurv() async {
try {
result = await http.put("http://10.0.2.2:8000/emergencies/${widget.id}/put", body: {
"title": titleController.text,
"Content": contentController.text,
});

return result;
} catch (e) {
throw e;
}
}

关于Flutter 在异步函数中调用 Navigator.pop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61721809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com