问题描述
连续调用两次addEvent,结果最终只能响应一次,第二次事件无法响应。
@override
  Stream<SomeState> mapEventToState(SomeEvent event) async*{
    if(event is InCreaseEvent){
      state.num ++;
      yield state;
    }
  }
someBloc.add(InCreaseEvent());
someBloc.add(InCreaseEvent());
处理方式:
1. State实现copyWith()方法  
每个State类都要有copy()方法,用于产生state对象的副本;每次编辑 state 的字段内容,然后 yield 副本,保证每次 yield 的都是新的对象。
class SomeBloc extends Bloc<SomeEvent, SomeState>{
  SomeState _currentState;
  SomeBloc(SomeState initialState) : super(initialState){
    _currentState = initialState;
  }
  @override
  Stream<SomeState> mapEventToState(SomeEvent event) async*{
    if(event is InCreaseEvent){
      _currentState.num ++;
      //每次 yield 新对象
      yield _currentState.copyWith();
    }
  }
}
class SomeState{
  int num;
  SomeState(this.num);
  ///新加 copyWith 方法用于生成副本
  SomeState copyWith(){
    return SomeState(num);
  }
}
abstract class SomeEvent{}
class InCreaseEvent extends SomeEvent{}
2.使用Equatable
state继承Equatable重写get方法










