Bloc中只保留一个状态类是不好的吗?
创始人
2024-12-22 22:30:20
0

在BLoC中,仅保留一个状态类通常是不好的做法。原因是如果您有多个状态,可能会更难查找问题或调试代码。 另外,如果您决定添加新状态,您必须要更新Bloc的状态类,这可能会导致代码变得混乱或难以维护。

可以采用以下方法解决:

  1. 首先,创建一个新的状态类,以便管理每个可能状态的列表。
abstract class MyBlocState {
  const MyBlocState();
}

class InitialState extends MyBlocState {}

class LoadingState extends MyBlocState {}

class LoadedState extends MyBlocState {
  final List items;

  LoadedState({@required this.items}) : assert(items != null);
}

class ErrorState extends MyBlocState {}
  1. 然后,更新Bloc类以使用这些新状态:
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';

import 'my_event.dart';
import 'my_state.dart';
import 'my_repository.dart';

class MyBloc extends Bloc {
  final MyRepository repository;

  MyBloc({@required this.repository}) : assert(repository != null);

  @override
  MyBlocState get initialState => InitialState();

  @override
  Stream mapEventToState(
    MyEvent event,
  ) async* {
    try {
      yield LoadingState();

      if (event is FetchItems) {
        final items = await repository.getItems();
        yield LoadedState(items: items);
      }
    } catch (_) {
      yield ErrorState();
    }
  }
}

这样,您就可以在BLoC中更好地管理状态,而不会将所有状态与BLoC混合在一起。它更容易扩展和维护,也更易于阅读和调试。

相关内容

热门资讯

透视实锤!哈糖大菠萝攻略,xp... 透视实锤!哈糖大菠萝攻略,xpoker辅助神器,2025新版教程(有挂揭秘);1、哈糖大菠萝攻略ai...
透视ai代打!德普之星透视辅助... 透视ai代打!德普之星透视辅助软件,(德普)一贯存在有挂,安装教程(有挂脚本)1、任何德普之星透视辅...
透视辅助!德普之星私人局辅助免... 透视辅助!德普之星私人局辅助免费,德普之星辅助工具如何设置,AI教程(有挂细节)1、德普之星辅助工具...
透视实锤“德州辅助工具到底怎么... 透视实锤“德州辅助工具到底怎么样”透视辅助安装(确实存在有挂)德州辅助工具到底怎么样软件透明挂微扑克...
透视美元局!德扑圈有透视吗,德... 透视美元局!德扑圈有透视吗,德普之星的辅助工具介绍,我来教教你(有挂细节)1、点击下载安装,德普之星...
辅助透视“约局吧是否有挂”透视... 辅助透视“约局吧是否有挂”透视辅助下载(本来有挂)1、约局吧是否有挂机器人多个强度级别选择2、约局吧...
透视肯定!德扑圈透视,(德普)... 透视肯定!德扑圈透视,(德普)真是真的有挂,揭秘攻略(有挂工具)1、下载好德扑圈透视辅助软件之后点击...
透视讲解!werplan透视挂... 透视讲解!werplan透视挂,pokemmo脚本辅助下载,细节方法(有挂介绍);1、玩家可以在po...
透视新版!德普之星的辅助工具介... 透视新版!德普之星的辅助工具介绍,(德扑之心)真是有挂,AA德州教程(有挂解密)1、德普之星的辅助工...
透视规律!智星菠萝可以辅助吗,... 透视规律!智星菠萝可以辅助吗,pokemmo脚本最新版,详细教程(有挂介绍);1、任何智星菠萝可以辅...