簡體   English   中英

Flutter || Firestore:如何從 firestore 中檢索數據並將其顯示在 DataTable 中

[英]Flutter || Firestore: how to retrieve data from firestore and display it in the DataTable

我正在嘗試從 firestore 檢索數據並將其顯示在 DataTable 上。 一切正常,但我在為每個用戶信息創建 DataRow 列表時遇到問題。

 List<DataRow> buildList(allData){
    List? dataRowList;
    for(int i =0; i <allData.length; i++){
      DataRow(cells: [
        DataCell(
          Text(allData[i]['customerNumber']),
        ),
        DataCell(Text(allData[i]['Name'])),
        DataCell(Text(allData[i]['TCKN'])),
        DataCell(Text(allData[i]['VKN'])),
        DataCell(Text(allData[i]['paketAdi'])),
        DataCell(
          Text(
            allData[i]['status'],
            style: TextStyle(
                color: allData[i]['status'] == "Tamamlandı"
                    ? Colors.green
                    : allData[i]['status'] == "İşlem Başarısız"
                    ? Colors.red
                    : allData[i]['status'] ==
                    "Belgeler Bankada"
                    ? Colors.cyanAccent
                    : Colors.blue),
          ),
        ),
        DataCell(Text(allData[i]['startDate'])),
        DataCell(Text(allData[i]['endDate'])),
      ]);
    }
    return null;
  }

如何返回 DataRows 列表並按如下方式使用它們:

FutureBuilder(
            future: getUserInfoData(),
            builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
              if (!snapshot.hasData) return LinearProgressIndicator();
              List? allData = snapshot.data;
              return DataTable(
                columnSpacing: 22,
                columns: [
                  DataColumn(label: Text('Müşteri No')),
                  DataColumn(label: Text('İsim Soyisim')),
                  DataColumn(label: Text('TCKN')),
                  DataColumn(label: Text('VKN')),
                  DataColumn(label: Text('Paket Adı')),
                  DataColumn(label: Text('Paket Durumu')),
                  DataColumn(label: Text('Baslangic Tarih')),
                  DataColumn(label: Text('Bitis Tarih')),
                ],
                rows: buildList(allData),
              );
            },
          )

先感謝您!

對於那些正在尋找該問題答案的人,這就是我的想法;

我修改了buildList;

DataRow buildList(allData, i) {
    return DataRow(cells: [
      DataCell(
        Text(allData[i]['customerNumber']),
      ),
      DataCell(Text(allData[i]['Name'])),
      DataCell(Text(allData[i]['TCKN'])),
      DataCell(Text(allData[i]['VKN'])),
      DataCell(Text(allData[i]['paketAdi'])),
      DataCell(
        Text(
          allData[i]['status'],
          style: TextStyle(
              color: allData[i]['status'] == "Tamamlandı"
                  ? Colors.green
                  : allData[i]['status'] == "İşlem Başarısız"
                      ? Colors.red
                      : allData[i]['status'] == "Belgeler Bankada"
                          ? Colors.cyanAccent
                          : Colors.blue),
        ),
      ),
      DataCell(Text(allData[i]['startDate'])),
      DataCell(Text(allData[i]['endDate'])),
    ]);
  }

這就是你如何稱呼這個 function;

 rows: List.generate(allData.length, (index) =>
                          buildList(allData, index))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM