首页 > 解决方案 > 在颤动中显示屏幕列表中的数据的方法是什么?

问题描述

我将来自 firestore 实例的一些数据存储在一个列表中,现在我想在我的屏幕上显示这些数据。

当我在终端打印我的列表时,我看到了这个:

I/flutter (11351): [{num: 100, title: This is test 2}]

我定义了一个这样的列表:

var list = new List();

我正在单击按钮获取数据。

RaisedButton(
                onPressed: () async {
                  var documentReference = await Firestore.instance.collection('insults').document('vv4YjpyRFFEknbCyC9o7');
                  documentReference.get().then((documentSnapshot){
                    setState(() {
                      list.add(documentSnapshot.data);
                    });
                    print(list);

                  }) ;
                },
                child: Text('Press me'),
              ),

请指导我一点。我刚开始学习flutter。

我不想遍历文档,但我想使用合适的方法将其存储在列表中。

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


不需要显示列表,因为您只是在一个文档下检索数据,如果您想显示检索到的数据,那么您可以执行以下操作:

首先在你的下面创建一个实例变量State

Map<String, dynamic> retrievedData = Map<String, dynamic>();

然后在内部setState将数据分配给retrievedData

RaisedButton(
                onPressed: () async {
                  var documentReference = await Firestore.instance.collection('insults').document('vv4YjpyRFFEknbCyC9o7');
                  documentReference.get().then((documentSnapshot){
                    setState(() {
                      retrieveData = documentSnapshot.data;
                    });
                  }) ;
                },
                child: Text('Press me'),
              ),

在该build方法中,您可以Column使用多个children例如:

          children: <Widget>[
            Text(
               retrievedData["title"] ?? "",
            ),
             Text(
              retrievedData["num"] ?? "",
            ), 
          ],

单击按钮时,setState将调用 build 方法,您的数据将显示在屏幕上。


推荐阅读