我有一个像这样的简单数组
[{ID: 1195, SubCategoryID: 87, Name: Fajita Pizza (S)}, {ID: 1192, SubCategoryID: 87, Name: Fajita Pizza (S)}, {ID: 1191, SubCategoryID: 87, Name: Fajita Pizza (S)}]
而且我有这样的简单 ID 1195
现在我需要过滤 ID 为 1195 的数组
我尝试这样的事情
var filterData = searchArray.searchArrayData.where((i) => i.ID == snapshot.data[i].ID).toList();
显示错误 Class '_InternalLinkedHashMap<String, dynamic>' has no instance getter 'ID'.
也试试这个
var filterData = searchArray.searchArrayData.where((i) => i['ID'] == snapshot.data[i].ID).toList();
显示此错误 type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'int'
答案 0 :(得分:0)
试试这个:
List<Map<String, dynamic>> items = [
{ID: 1195, SubCategoryID: 87, Name: Fajita Pizza (S)},
{ID: 1192, SubCategoryID: 87, Name: Fajita Pizza (S)},
{ID: 1191, SubCategoryID: 87, Name: Fajita Pizza (S)}
];
var filterData = items.where((element) => element["ID"] == 1195);
答案 1 :(得分:0)
问题在于您如何使用 snapshot.data[i].ID
:您将映射 (i
) 作为数组的索引(应该是 int)传递。
如果您澄清了 snapshot.data 返回的是什么,我可以建议您采用正确的方法来做到这一点。