![](/img/trans.png)
[英]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.