如何正确地等到未来在飞镖中完成

How to properly wait until future is complete in dart

我用 Flutter 制作的应用程序有一个小错误,当用户登录时,它会从我的数据库中获取用户信息,但速度不够快,导致我的应用程序前端出现视觉错误。该应用程序的布局使用了用户信息(名称、位置和图像),并且加载速度不够快。我想知道是否有一种方法可以等待我的未来完成,一旦完成,它就可以毫无问题地将用户导航到前端。

您应该在 initState() 函数中从数据库中获取您的日期,然后您必须修改您的小部件构建器以使用 FutureBuilder,这是一个示例:

Widget build(BuildContext context) {
return FutureBuilder(
    future: getProfile(),
    builder: (BuildContext context, AsyncSnapshot<SharedPreferences> snapshot) {
      if(snapshot.connectionState == ConnectionState.done){
        return new MaterialApp();
      }
    }
  )
}

请注意,您可以将 AsyncSnapshot<SharedPreferences> 替换为您的 Future 函数类型 returns。