dart – 有没有办法在InitState方法上加载异步数据?

dart – 有没有办法在InitState方法上加载异步数据?,第1张

概述我正在寻找一种在InitState方法加载异步数据的方法,在构建方法运行之前我需要一些数据.我正在使用GoogleAuth代码,我需要执行构建方法,直到Stream运行. 我的initState方法是: @override void initState () { super.initState(); _googleSignIn.onCurrentUserChanged.lis 我正在寻找一种在InitState方法上加载异步数据的方法,在构建方法运行之前我需要一些数据.我正在使用GoogleAuth代码,我需要执行构建方法,直到Stream运行.

我的initState方法是:

@overrIDe  voID initState () {    super.initState();    _GoogleSignIn.onCurrentUserChanged.Listen((GoogleSignInAccount account)     {      setState(() {        _currentUser = account;      });    });    _GoogleSignIn.signInSilently();  }

我将不胜感激任何反馈.

解决方法 您可以使用StreamBuilder执行此 *** 作.只要流中的数据发生更改,这将运行构建器方法.

以下是我的一个示例项目的代码片段:

StreamBuilder<List<Content>> _getContentsList(BuildContext context) {    final BlocProvIDer blocProvIDer = BlocProvIDer.of(context);    int page = 1;    return StreamBuilder<List<Content>>(        stream: blocProvIDer.contentBloc.contents,initialData: [],builder: (context,snapshot) {          if (snapshot.data.isNotEmpty) {            return ListVIEw.builder(itemBuilder: (context,index) {              if (index < snapshot.data.length) {                return ContentBox(content: snapshot.data.elementAt(index));              } else if (index / 5 == page) {                page++;                blocProvIDer.contentBloc.index.add(index);              }            });          } else {            return Center(              child: CircularProgressIndicator(),);          }        });  }

在上面的代码中,StreamBuilder监听内容的任何变化,最初是一个空数组并显示CircularProgressIndicator.一旦我进行API调用,就会将fetched数据添加到contents数组中,该数组将运行builder方法.

当用户向下滚动时,将获取更多内容并将其添加到内容数组中,这将再次运行构建器方法.

在您的情况下,只需要初始加载.但是,这为您提供了一个选项,可以在屏幕上显示其他内容,直到获取数据.

希望这是有帮助的.

编辑:

在你的情况下,我猜它将看起来如下所示:

StreamBuilder<List<Content>>(        stream: account,// stream data to Listen for change        builder: (context,snapshot) {            if(account != null) {                return _GoogleSignIn.signInSilently();            } else {                // show loader or animation            }        });
总结

以上是内存溢出为你收集整理的dart – 有没有办法在InitState方法上加载异步数据?全部内容,希望文章能够帮你解决dart – 有没有办法在InitState方法上加载异步数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存