datatable - 使用 Firestore 和 Flutter 填充 DataTable(使用 StreamBuilder)
问题描述
如何使用 StreamBuilder 填充 DataTable?
下面是我的代码:
new StreamBuilder(
stream: widget._returnStreamWithActiveKeysOnly(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new DataTable(
columns: <DataColumn>[
new DataColumn(
label: Text('type'),
tooltip: 'Ordinary or service (1 day only, restricted time)',
),
new DataColumn(label: Text('Key')),
new DataColumn(label: Text('Check-in')),
new DataColumn(label: Text('Check-out')),
],
rows: _listOfRows(snapshot),
);
},
)
我找不到一种方法(如内置构建器)来指示要传递给_listOfRows
函数的文档索引,或者如何访问每个流的当前文档。
解决方案
我不知道哪些数据来自您的流,但这里有关于如何做到这一点的想法:
DataTable(
rows: _createRows(snapshot.data),
)
您希望您的构建器方法返回List<DataRow>
List<DataRow> _createRows(QuerySnapshot snapshot) {
List<DataRow> newList = snapshot.documents.map((DocumentSnapshot documentSnapshot) {
return new DataRow(cells: _createCellsForElement(documentSnapshot["someDataYouWantToProcessForCellData"]));
}).toList();
return newList;
}
您可以应用相同的逻辑来创建单元格,也可以在第一个 map 函数中执行此操作。
推荐阅读
- ruby-on-rails - 活动管理员注销重定向循环
- excel - Excel公式在两列中搜索一列中的唯一值和另一列中的固定值
- javascript - 循环对象数组
- java - 如何在 Angular2+ 中将 Blob xml 转换为 doc
- curl - GitHub Api - 使用 curl 列出给定文件夹的每个文件
- ios - Swift - 是否可以 ping RTMP 网址?
- python - 通过类传递本地 url
- python-3.x - 我不明白在这段代码中使用什么(+= 或 .join())
- javascript - 无论如何将动态 PHP 值存储在 JavaScript 变量中吗?
- c# - ListView 大小大于 Window