[英]Error: type '() => Map<String, dynamic>?' is not a subtype of type 'Map<String, dynamic>?'
[英]type 'List<Map<String, dynamic>>' is not a subtype of type 'Map<dynamic, dynamic>'
我正在嘗試將 from List 設置為 Map 我收到此錯誤。
我從 Firestore 獲取數據,您可以在下面看到查詢和 output。
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.[0]”設置為“_data”時出現錯誤。
您希望_cards
是List<Map<String, dynamic>>
但事實並非如此。 這是一個List<List<Map<String, dynamic>>>
並嘗試將它的第一個項目List<Map<String, dynamic>>
傳遞給Map<String, dynamic>
的_data,這是一個問題。 如果你想將任何值從 _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];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.