Flutter 在颤振腹板中使用折叠方法不起作用
我有一个折叠方法和排序,在Flutter for mobile中有效,但在web版本中不起作用。当我访问我的主页时,我得到的错误是: 未来建设者 lib/../HomePage/Home.dart:356 当抛出异常时,这是堆栈 packages/BuddiesWebApp/Pages/HomePage/Home.dart.lib.js 3503:35[\u GetProductsInHeaders] packages/BuddiesWebApp/Pages/HomePage/Home.dart.lib.js 3640:70 packages/flatter/src/widgets/async.dart.lib.js 517:77构建 这是我的筛选方法:Flutter 在颤振腹板中使用折叠方法不起作用,flutter,flutter-web,Flutter,Flutter Web,我有一个折叠方法和排序,在Flutter for mobile中有效,但在web版本中不起作用。当我访问我的主页时,我得到的错误是: 未来建设者 lib/../HomePage/Home.dart:356 当抛出异常时,这是堆栈 packages/BuddiesWebApp/Pages/HomePage/Home.dart.lib.js 3503:35[\u GetProductsInHeaders] packages/BuddiesWebApp/Pages/HomePage/Home.dart
List<ProductsInHeading> _getProductsInHeadings(List<Product> items) {
switch (selectedTab) {
case FilterTabs.Feels:
final Map<String, List<Product>> allFeelings =
Map.fromEntries(TabCategories.feeling.map((e) => MapEntry(e, [])));
Map<String, List<Product>> headingItems =
items.fold(allFeelings, (feelings, element) {
if (!feelings.containsKey(element.effect)) {
return feelings;
}
return feelings
..update(element.effect, (value) => value..add(element));
});
productList = headingItems;
print("headingItems: $headingItems");
return headingItems.entries
.map((e) => ProductsInHeading(e.key, e.value..sort()))
.toList()
..sort()
..where((e) => e.products.length != 0);
break;
case FilterTabs.Rec:
final Map<String, List<Product>> allRecommended =
Map.fromEntries(recCategories.map((e) => MapEntry(e, [])));
Map<String, List> headingItems =
items.fold(allRecommended, (feeling, element) {
if (!feeling.containsKey(element.effect)) {
return feeling;
}
return feeling
..update(recCategories.toString(), (value) => value..add(element));
});
productList = headingItems;
print("headingItems: $headingItems");
return headingItems.entries
.map((e) => ProductsInHeading(e.key, e.value..sort()))
.toList()
..sort()
..where((e) => e.products.length != 0);
break;
case FilterTabs.Relief:
// usage might be wrong, I'm not sure
final Map<String, List<Product>> allRecovery =
Map.fromEntries(TabCategories.usage.map((e) => MapEntry(e, [])));
Map<String, List<Product>> headingItems =
items.fold(allRecovery, (recovery, element) {
if (!recovery.containsKey(element.usage)) {
return recovery;
}
return recovery
..update(element.usage, (value) => value..add(element));
});
productList = headingItems;
// print("headingItems: $headingItems");
return headingItems.entries
.map((e) => ProductsInHeading(e.key, e.value..sort()))
.toList()
..sort();
break;
case FilterTabs.Categories:
// usage might be wrong, I'm not sure
final Map<String, List<Product>> allCategories = Map.fromEntries(
TabCategories.prodCategory.map((e) => MapEntry(e, [])));
Map<String, List<Product>> headingItems =
items.fold(allCategories, (categories, element) {
if (!categories.containsKey(element.productCategory)) {
return categories;
}
return categories
..update(element.productCategory, (value) => value..add(element));
});
// print("headingItems: $headingItems");
productList = headingItems;
return headingItems.entries
.map((e) => ProductsInHeading(e.key, e.value..sort()))
.toList()
..sort()
..where((e) => e.products.length != 0);
break;
case FilterTabs.All:
return TabCategories.all
.map((e) => ProductsInHeading(e, items))
.toList();
}
throw UnsupportedError("Unsupported tab type");
}
List\u获取产品标题(列表项){
开关(已选择的选项卡){
外壳过滤器ABS.手感:
最终地图所有的感觉=
Map.fromEntries(TabCategories.feeling.Map((e)=>MapEntry(e,[]));
地图标题项目=
物品。折叠(所有感觉,(感觉,元素){
if(!features.containsKey(element.effect)){
回报感情;
}
回馈感情
…更新(element.effect,(value)=>value..add(element));
});
productList=标题项;
打印(“标题项目:$headingItems”);
返回标题items.entries
.map((e)=>ProductsInHeading(e.key,e.value..sort())
托利斯先生()
…排序()
…式中((e)=>e.products.length!=0);
打破
外壳过滤器选项卡记录:
建议使用最终地图=
Map.fromEntries(recCategories.Map((e)=>MapEntries(e,[]));
地图标题项目=
物品。折叠(所有推荐物品,(感觉、元素){
if(!feeling.containsKey(element.effect)){
回归感;
}
回归感
…更新(recCategories.toString(),(value)=>value..add(element));
});
productList=标题项;
打印(“标题项目:$headingItems”);
返回标题items.entries
.map((e)=>ProductsInHeading(e.key,e.value..sort())
托利斯先生()
…排序()
…式中((e)=>e.products.length!=0);
打破
箱体过滤器制动安全阀:
//用法可能是错误的,我不确定
最终地图恢复=
Map.fromEntries(TabCategories.usage.Map((e)=>MapEntry(e,[]));
地图标题项目=
物品。折叠(全部回收,(回收,元素){
if(!recovery.containsKey(element.usage)){
回报回收;
}
回收率
…更新(element.usage,(value)=>value..add(element));
});
productList=标题项;
//打印(“标题项目:$headingItems”);
返回标题items.entries
.map((e)=>ProductsInHeading(e.key,e.value..sort())
托利斯先生()
…排序();
打破
案例过滤器选项卡。类别:
//用法可能是错误的,我不确定
最终映射allCategories=Map.fromEntries(
TabCategories.prodCategory.map((e)=>MapEntry(e,[]));
地图标题项目=
项目.折叠(所有类别,(类别,元素){
如果(!categories.containsKey(element.productCategory)){
退货类别;
}
退货类别
…更新(element.productCategory,(value)=>value..add(element));
});
//打印(“标题项目:$headingItems”);
productList=标题项;
返回标题items.entries
.map((e)=>ProductsInHeading(e.key,e.value..sort())
托利斯先生()
…排序()
…式中((e)=>e.products.length!=0);
打破
外壳过滤器选项卡。全部:
返回TabCategories.all
.map((e)=>产品标题(e,项目))
.toList();
}
抛出UnsupportedError(“不支持的选项卡类型”);
}
我不知道如何正确地迁移它。请帮忙