Flutter:我是不是必须为我的应用程序的每个部分创建一个块?它的最佳做法是啥?

Posted

技术标签:

【中文标题】Flutter:我是不是必须为我的应用程序的每个部分创建一个块?它的最佳做法是啥?【英文标题】:Flutter: Do I have to create a bloc for each part on my app? What it the best practices?Flutter:我是否必须为我的应用程序的每个部分创建一个块?它的最佳做法是什么? 【发布时间】:2020-11-18 09:11:08 【问题描述】:

我正在开发一个电子商务移动应用程序,使用带有 Bloc 作为设计模式的 Flutter 和用于简化事情的 flutter_bloc 包。

我的问题是:我是否必须为我的应用程序的每个部分创建一个块?这是将 BLOC 用作设计模式的最佳实践吗?

例如,在我的主屏幕上的应用程序中,有一些部分,如畅销书和优惠...等,我是否必须为每个部分创建一个单独的块?因为我猜这样会有很多重复的代码和很多文件,但仍然不能在逻辑上使用同一个块一次完成。

【问题讨论】:

【参考方案1】:

你们有来自 api 的卖家吗? 如果你这样做,你可以为所有这些人使用一个集团 .....

你必须说的状态

    class SellerInfoLoaded extends SellerState 
  final List<sellerInfoModel> bestsellers;
  final List<sellerInfoModel> badsellers;

  OrderLoaded( @required this.bestsellers, @required this.badsellers,);
  @override
  List<Object> get props => [bestsellers,badsellers];

那么你必须说在集团中

if (event is fetchseller) 
      yield SellerLoading();
      try 
        var sellers = await _sellerApi.getsellerInfoList();

        var bestsellers= sellers
            .where((element) => element.status == 'goodsellers')
            .toList();
           
        var badsellers= sellers
            .where((element) => element.status == 'badsellers')
            .toList();


        yield SellerInfoLoaded (
            badsellers: badsellers,
            bestsellers:bestsellers ,);
       catch (e) 
        throw Exception();
      
    

【讨论】:

以上是关于Flutter:我是不是必须为我的应用程序的每个部分创建一个块?它的最佳做法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

带有 Flutter 的 Firebase 中的唯一用户名

为我的应用程序需要与之通信的每个主机使用一个 HttpClient 实例是不是可以?

如何使用本地数据库为我的 Flutter 应用程序创建收藏按钮?

如何在我的项目中应用flutter_bloc?

Flutter ListView 在构建时滚动到底部

Flutter IOS - 我是不是必须获得真正的 IOS 设备才能上传应用商店?