【发布时间】:2020-10-13 02:27:25
【问题描述】:
我需要 index 数字 forEach 可迭代值,因为我想更新我的数据表。但是为了更新数据表,我需要列 ID。这就是为什么我想要每个值的索引号并将其分配给 > i。 有类似的问题解释了如何获取可迭代的索引。但就我而言,我未能映射 CallLogEntry,这就是为什么我无法获取此可迭代值的索引。
Future callLogDB() async {
Iterable<CallLogEntry> cLog = await CallLog.get();
final dbHelper = DatabaseHelper.instance;
int i = 0;
cLog.forEach((log) async {
i++;
// row to insert
Map<String, dynamic> row = {
//DatabaseHelper.columnId: 2,
DatabaseHelper.columnName: '${log.name}',
DatabaseHelper.columnNumber: '${log.number}',
DatabaseHelper.columnType: '${log.callType}',
DatabaseHelper.columnDate:
'${DateTime.fromMillisecondsSinceEpoch(log.timestamp)}',
DatabaseHelper.columnDuration: '${log.duration}'
};
await dbHelper.insert(row);
print('CallLog $i:: $row');
});
return cLog;
}
【问题讨论】:
-
我无法理解这个问题。我需要针对我的问题的解决方案。
-
我无法映射 CallLogEntry。这就是为什么我无法获得可迭代值的索引。
-
如果转换为基于索引的
for循环会发生什么?我在下面的答案中添加了转换后的代码。 -
我尝试了 for 循环。但不幸的是,我的应用程序崩溃了。
-
它给出的错误是什么?
标签: database flutter dart foreach iterable