dart - 如何分配> 列出变量?
问题描述
如何使用此 DB 功能一一显示数据?
Future<List<Data>> display() async {
//final Database db = await database;
var db = await db1;
final List<Map<String, dynamic>> maps = await db.query('syncTable');
return List.generate(maps.length, (i) {
return Data(
syn_TableName: maps[i]['syn_TableName'],
syn_ChangeSequence: maps[i]['syn_ChangeSequence'],
);
});
}
解决方案
您可以使用FutureBuilder来使用您的display()
方法。然后在里面FutureBuilder
你可以AsyncSnapshot.data
用来获取你List
的Data
元素。
在下一步中,您可以调用List.map()
将您的小部件映射Data
到小部件。在本例中,我使用ListTile
来显示:
snapshot.data.map((data) {
return ListTile(
title: Text(data.syn_TableName),
subtitle: Text(data.syn_ChangeSequence),
);
}).toList(),
这是您可以尝试的最小工作示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: FutureBuilder<List<Data>>(
initialData: [],
future: display(),
builder: (context, snapshot) {
return ListView(
children: snapshot.data.map((data) {
return ListTile(
title: Text(data.syn_TableName),
subtitle: Text(data.syn_ChangeSequence),
);
}).toList(),
);
}),
),
);
}
Future<List<Data>> display() async {
return List.generate(15, (i) {
return Data(
syn_TableName: 'syn_TableName $i',
syn_ChangeSequence: 'syn_ChangeSequence $i',
);
});
}
}
class Data {
final String syn_TableName;
final String syn_ChangeSequence;
Data({this.syn_ChangeSequence, this.syn_TableName});
}
推荐阅读
- reactjs - 无法使用 sinon 从“复制到剪贴板”测试副本
- css - 如何使用 CSS 删除单词
- spring - Eureka 是在 8761 还是 8080 上运行?
- python - 递归数独求解器不解决任何问题
- excel - 电源查询 Excel 循环日期
- python - 为什么 kivy 的小部件的大小不是真实的?
- django - 为什么我无法对现有的 postgres 数据库表执行 SQL 查询?
- arrays - 评估列表列表中的行长和维度
- c# - 在任何文本框中的任何更改上更新过滤器和 DataGrid
- javascript - 在直接从 IDE 运行时,如何禁止我的电子向协议处理程序注册?