- My app is eCommerce store with dashboard has multiple lists:
LatestProducts
,DiscountProducts
,MostViewedProduct
, … - I create Multi Providers:
LatestProductProvider
,DiscountProductProvider
,MostViewedProductProvider
(actually same providers with filter parameter that get different sorted products) - I don’t want create multiple widget for each product list. My main widget reuses this single widget class:
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
How to code above scenario? When i test my codes, my lists load parallel datas. this image is my result: