【发布时间】:2019-11-20 10:55:37
【问题描述】:
我想从数据库中获取所有项目,但我不知道如何将 Future 字符串列表转换为字符串列表。
var x = DataBaseHelper.instance.queryAllRows();
Future<List<String>> queryAllRows() async {
Database db = await instance._initDatabase();
List<Map<String,dynamic>> s = await db.query(table ,columns: [columnname]);
List<String> list = new List();
for(var x in s){
x.forEach((k,v)=>list.add(v));
}
return list;
}
我想获取数据库中的所有值,但不知道如何将这些值转换为列表
【问题讨论】:
-
从你的
List<Map<String,dynamic>>到List<String>与你可以做的所有地图中的所有值:var list = List<String>.from(s.expand((m) => m.values)) -
@NateBosch 我听从了您的建议,但收到错误“无法将参数类型 'Future
- >' 分配给参数类型 'Iterable
'”。谢谢。 -
@Kamlesh 我的评论是关于处理类型 other 而不是异步位。有关处理
Future的信息,请参阅下面的答案。另见dart.dev/codelabs/async-await