如何使用单一小部件与多个供应商?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用单一小部件与多个供应商?相关的知识,希望对你有一定的参考价值。
我的应用程序是电子商务商店与仪表板有多个列表。
LatestProducts
,DiscountProducts
,MostViewedProduct
, ...我创建多供应商。
LatestProductProvider
,DiscountProductProvider
,MostViewedProductProvider
(其实同样的供应商,通过过滤参数得到不同的排序产品)我不想为每个产品列表创建多个widget。我的主widget重复使用这个单一的widget类。
class _ProductsWidget extends StatelessWidget { const _ProductsWidget({ Key key, @required this.filter,}) : super(key: key); final String filter; @override Widget build(BuildContext context) { dynamic productProvider = null; if (filter == '0') productProvider = Provider.of<LatestProductProvider>(context); if (filter == '1') productProvider = Provider.of<DiscountProductProvider>(context); if (filter == '2') productProvider = Provider.of<MostViewedProductProvider>(context); return SliverToBoxAdapter( child: ... ... //use matched productProvider
当我测试我的代码时,我的列表加载了平行的数据,这个图像是我的结果。
答案
在你的模型里面过滤最新的,打折的和最浏览的产品。然后你会一个storeproducts对象。
class StoreProducts{
final List<Product> latest;
final List<Product> mostViewed;
final List<Product> discounted;
//if needed
final List<Product> otherProducts;
StoreProducts(this.latest,this.mostViewed,this.discounted);
}
以上是关于如何使用单一小部件与多个供应商?的主要内容,如果未能解决你的问题,请参考以下文章
如何更新导航抽屉中的有状态小部件,同时在 Android 中保持与片段相同的类?