我试图将“从列表”设置为“映射”,我得到了这个错误。
我从Firestore获取数据,下面您可以看到查询和输出。
List<Map<String, dynamic>> transactionData = [];
List accountList = [];
List availableAccount = [];
getData() async{
final dataDB = await FirebaseFirestore.instance.collection('TransactionData').doc(getUid()).get();
snapshot = dataDB;
final Map<String, dynamic> documentData = snapshot.data() as Map<String, dynamic>;
documentData.forEach((key, value) {
availableAccount.add(key);
});
for(int j=0;j<availableAccount.length;j++){
transactionData = (documentData[availableAccount[j]] as List).map((accountList) => accountList as Map<String, dynamic>).toList();
accountList.add(transactionData);
}
_cards = accountList;
print('Cards: $_cards');
setState(() {
_data = _cards![0];
});
}Cards: [[{categoryName: Education, uid: LNM6JQuoKCPIANTyQHMKWLIzl5m1, amount: 3,000.00, lastUpdatedDate: 25-08-2022, createdDate: 25-08-2022, toAccountId: , type: Credit, transfer: N, accountId: 21Aug5298Sav, auto: Y, accountName: null, transactionId: deb1621, categoryLogo: assets/images/Education.png, untagged: N, categoryBackgroundColor: 0xffFFA2C0, currency: INR, transactionDate: 25-08-2022}, {categoryName: Education, uid: LNM6JQuoKCPIANTyQHMKWLIzl5m1, amount: 300.00, lastUpdatedDate: 25-08-2022, createdDate: 25-08-2022, toAccountId: , type: Debit, transfer: N, accountId: 21Aug5298Sav, auto: Y, accountName: null, transactionId: deb5366, categoryLogo: assets/images/Education.png, untagged: N, categoryBackgroundColor: 0xffFFA2C0, currency: INR, transactionDate: 25-08-2022}, {categoryName: Travelling, uid: LNM6JQuoKCPIANTyQHMKWLIzl5m1, amount: 100.00, lastUpdatedDate: 24-08-2022, createdDate: 24-08-2022, toAccountId: , type: , transfer: N, accountId: 21Aug5298Sav, auto: Y, accountName:<…>有人能帮我解决这个问题吗?当我把'_cards‘设置为'_data’时会出错。

发布于 2022-08-28 18:31:41
您希望_cards是一个List<Map<String, dynamic>>,但它不是。这是一个List<List<Map<String, dynamic>>>,尝试将它的第一项List<Map<String, dynamic>>传递给_data,后者是Map<String, dynamic>,这是一个问题。如果您想将任何值从_cards传递给_data,应该如下所示:
_data = _cards![0][0];如果要将List<List<Map<String, dynamic>>>转换为List<Map<String, dynamic>>,请执行以下操作:
List<String> newCards = [];
for (var item in _cards) {
newCards = [...newCards, ...item];
}然后:
_data = newCards[0]; https://stackoverflow.com/questions/73520923
复制相似问题