Asynchronous 如何在dart中正确等待未来完成

Asynchronous 如何在dart中正确等待未来完成,asynchronous,dart,flutter,future,Asynchronous,Dart,Flutter,Future,我的应用程序中有一个由Flutter生成的小错误,即当用户登录时,它从我的数据库中获取用户信息,但速度不够快,并在我的应用程序前端导致视觉错误。应用程序具有使用用户信息名称、位置和图像的布局,加载速度不够快。我想知道是否有一种方法可以等待我的未来完成,一旦完成,它可以毫无问题地将用户导航到前端。您应该在initState函数中从数据库获取日期,然后您必须修改您的小部件生成器以使用FutureBuilder,以下是一个示例: Widget build(BuildContext context) {

我的应用程序中有一个由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。

您应该在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。

yes-使用FutureBuider-等待期间-显示加载元素。yes-使用FutureBuider-等待期间-显示加载元素。