如何使用单一小部件与多个供应商?

问题描述 投票:0回答:1
  1. 我的应用程序是电子商务商店与仪表板有多个列表。LatestProducts, DiscountProducts, MostViewedProduct, ...

  2. 我创建多供应商。LatestProductProvider, DiscountProductProvider, MostViewedProductProvider(其实同样的供应商,通过过滤参数得到不同的排序产品)

  3. 我不想为每个产品列表创建多个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
    

当我测试我的代码时,我的列表加载了平行的数据,这个图像是我的结果。

图片中的结果

flutter dart widget provider
1个回答
0
投票

在你的模型里面过滤最新的,打折的和最浏览的产品。然后你会一个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);
}
© www.soinside.com 2019 - 2024. All rights reserved.