我試圖將 flutter_bloc v8 用于計數器應用程式,但我無法訪問狀態值來更新它。它告訴我狀態是未定義的。我知道我們可以通過使用 Cubit 來簡化它,但我想看看它如何與普通集團一起作業。
counter_state.dart
abstract class CounterState {}
class CounterValue extends CounterState {
int value;
CounterValue(this.value);
}
class CounterLoading extends CounterState {}
counter_bloc.dart
class CounterBloc extends Bloc<CounterEvent, CounterState> {
CounterBloc() : super(CounterValue(0)) {
on<IncrementEvent>((event, emit) => _increment(emit));
on<DecrementEvent>((event, emit) => _decrement(emit));
}
}
void _increment(Emitter<CounterState> emit) {
emit(CounterValue(state.value 1));
}
void _decrement(Emitter<CounterState> emit) {
emit(CounterValue(state.value 1));
}
uj5u.com熱心網友回復:
該狀態無法訪問,因為您已在 CounterBloc 之外定義了您的函式。
試試這個:
class CounterBloc extends Bloc<CounterEvent, CounterState> {
CounterBloc() : super(CounterValue(0)) {
on<IncrementEvent>((event, emit) => _increment(emit));
on<DecrementEvent>((event, emit) => _decrement(emit));
}
void _increment(Emitter<CounterState> emit) {
emit(CounterValue(state.value 1));
}
void _decrement(Emitter<CounterState> emit) {
emit(CounterValue(state.value 1));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/393787.html
