我使用下面的代码从firestore集合中获取文档总数,然后将其存储到int countDocument
,它确实可以准确地获取该值,但当我在嵌套在Scaffold中的Flutter小部件Text Widget
中显示相同的值时,在加载屏幕时它不会显示该值,仅显示null
,只有在热重新加载时它才会在屏幕上显示该值。
为了在Text Widget
中表示countDocument
的值,我使用了countDocument.toString(),但在初始加载屏幕时仍然没有显示该值
我该如何解决它?
void countDocuments() async {
StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance.collection('users').snapshots().listen((result) {
countDocument = result.documents.length;
print(countDocument);
});
发布于 2020-05-29 15:47:41
您需要使用StatefulWidget
,然后使用setState
可以更改Text
的数据
void countDocuments() async {
StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance
.collection('users')
.snapshots()
.listen((result) {
setState(() {
countDocument = result.documents.length;
});
print(countDocument);
});
}
setState
将使用新数据再次调用build
方法。在build
方法中,您可以执行以下操作:
Text(countDocument ?? "loading")
https://stackoverflow.com/questions/62079409
复制相似问题