嘿,伙计们,我对flutter中的for循环字符有点困惑。我有4张收据,每张有2个项目,我期望循环流程4次,但我发现它运行了8次,
我有两个本地sql数据库ReceiptDatabase &ItemsDatabase。它们有一对多的关系。在itemsDatabase中有receiptId列
What I was trying
await getReceiptsFromSqlite();
_data = [];
for(var rec in _receipts) {
print(_receipts.length); //4
print(rec.id); //1,1,2,2,3,3,4,4
_items =[];
_items=await ItemsDatabase.instance.readItems(rec.id!);
MainData md = MainData.fromJson(LocalReceipt.mapAsNonSqlStructure(rec, _items));
_data.add(md);
}
Future getReceiptsFromSqlite() async {
_receipts = await ReceiptDatabase.instance.readAllReceipts();
}
谁能解释一下这个情况?
我不知道它是否发生在其他人身上,但有时如果我运行调试apk相当长一段时间,并通过热重启和热重新加载对它进行更改,我的一些方法开始多次调用,甚至我的FirebaseAuth。在没有对Firebase用户进行任何更改的情况下,userChanges监听器开始被多次调用。因此,为了排除这种可能性,请尝试运行flutter clean命令并尝试重新构建应用程序。
p。S:只有当你的循环正常运行并且有时重复两次行为时才会出现这种情况。