在BLoC类中使用EquatableMixin,并确保在调用emit()之前更新状态。示例代码如下:
import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; abstract class CounterState extends Equatable { final int counter; CounterState(this.counter); @override List get props => [counter]; } class CounterBloc extends Bloc with EquatableMixin { // 使用EquatableMixin CounterBloc() : super(CounterState(0)); @override Stream mapEventToState(CounterEvent event) async* { if (event is IncrementEvent) { final newCounterValue = state.counter + 1; // 更新状态 state = CounterState(newCounterValue); // 调用emit() yield state; } } }
上一篇:BLOC状态变化时UI未更新
下一篇:BLoC自定义转换器和switchMap不按预期工作