首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未实时加载值

未实时加载值
EN

Stack Overflow用户
提问于 2020-05-29 13:41:15
回答 1查看 42关注 0票数 0

我使用下面的代码从firestore集合中获取文档总数,然后将其存储到int countDocument,它确实可以准确地获取该值,但当我在嵌套在Scaffold中的Flutter小部件Text Widget中显示相同的值时,在加载屏幕时它不会显示该值,仅显示null,只有在热重新加载时它才会在屏幕上显示该值。

为了在Text Widget中表示countDocument的值,我使用了countDocument.toString(),但在初始加载屏幕时仍然没有显示该值

我该如何解决它?

代码语言:javascript
运行
复制
void countDocuments() async {
    StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance.collection('users').snapshots().listen((result) {

         countDocument = result.documents.length;
         print(countDocument);


    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 15:47:41

您需要使用StatefulWidget,然后使用setState可以更改Text的数据

代码语言:javascript
运行
复制
  void countDocuments() async {
    StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance
        .collection('users')
        .snapshots()
        .listen((result) {
      setState(() {
        countDocument = result.documents.length;
      });
      print(countDocument);
    });
  }

setState将使用新数据再次调用build方法。在build方法中,您可以执行以下操作:

代码语言:javascript
运行
复制
Text(countDocument ?? "loading")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62079409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档