如何在按下Flutter按钮从api获取数据后快速移动



我想问是否有未来的函数从api中提供数据,我想在按下按钮时获得这些数据,我想要一些特定的数据,比如我正在使用等函数的用户id

onPressed: () async {
var data = await getLogin()
if(data.id == 0){
Navigator.push(context,
MaterialPageRoute(builder: ((context) => Login())));
else {
Navigator.push(context,
MaterialPageRoute(builder: ((context) => Order())));
}
}

你能告诉我为什么当我按下按钮打开新屏幕时需要时间吗?有人能告诉我的解决方案吗

这需要时间,因为它为数据await。它是一个异步函数,这个wait关键字等待,直到你没有得到数据。。

问题是,如果您不使用await关键字,那么data.id将抛出一个空安全错误。。。。

所以解决方案是未来提供商。。。使用任何状态管理解决方案(如提供程序(调用api,并在不检查条件的情况下进行导航。。。然后在从提供程序获取数据后更新Ui。。

最新更新