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

时间:2019-02-11 15:58:54

标签: asynchronous dart flutter future

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

1 个答案:

答案 0 :(得分:3)

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