颤振:'_InternalLinkedHashMap<String, dynamic>' 型不是 'bool' 型颤振的子类型



我是这个颤振的新手,但我找不到解决方案。

Future<void> fetchAndSetProducts([bool filterByUser = false]) async {
final filterString =
filterByUser ? 'orderBy"userId"&equalTo="${userId}"' : '';
final Uri url = Uri.parse(
'https://flutter-update-8df10-default-rtdb.europe-west1.firebasedatabase.app/products.json?auth=${authToken}&${filterString}');
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
if (extractedData == null) {
print('extractedDataProducts = null');
return;
}
final Uri favoritesResponseUrl = Uri.parse(
'https://flutter-update-8df10-default-rtdb.europe-west1.firebasedatabase.app/UserFavorites/${userId}.json?auth=${authToken}');
final favoriteResponse = await http.get(url);
Map<String, dynamic> _favoriteData =
Map<String, dynamic>.from(json.decode(favoriteResponse.body));
final List<Product> loadedProducts = [];
extractedData.forEach((prodId, prodData) {
loadedProducts.add(Product(
id: prodId,
title: prodData['title'],
description: prodData['description'],
price: prodData['price'],
isFavorite: _favoriteData == null ? false : _favoriteData[prodId],
imageUrl: prodData['imageUrl'],
));
});
_items = loadedProducts;
notifyListeners();
} catch (error) {
print(error);
throw (error);
}
}

我收到这个错误

flutter:类型'_InteralLinkedHashMap<字符串,动态>'不是"bool"类型的子类型[VERBOSE-2:dart_vm_initializer.cc(41(]未处理的异常:类型'_InteralLinkedHashMap<字符串,动态>'不是类型"bool"的子类型

但找不到任何解决方案来修复此问题我已尽力修复,但无法

错误在上

isFavorite: _favoriteData == null ? false : _favoriteData[prodId],

isFavorite必须是布尔,并且您尝试将_favoriteData[prodId]分配给它,这是一个映射。

我相信你只是想让isFavorite在它存在的时候是真的,所以把它改成

isFavorite: _favoriteData[prodId] != null,

最新更新