Я столкнулся с проблемой в BlocLibrary (https://bloclibrary.dev/). Мне нужно получить такое же состояние в BlocListner / BlocBuilder, позвольте мне объяснить в коде: Это Blo c (для небольшого объяснения) :
class CounterBloc extends Bloc<CounterEvent, AppState> {
@override
AppState get initialState => InititalState();
@override
Stream<AppState> mapEventToState(CounterEvent event) async* {
switch (event) {
case CounterEvent.getState:
yield Counter(value: 0);
break;
}
ЗДЕСЬ ГОСУДАРСТВЕННЫЙ КЛАСС:
import 'package:flutter_bloc/flutter_bloc.dart';
enum StateEvent { getState }
abstract class AppState extends Equatable {
const AppState();
@override
List<Object> get props => [];
}
class Counter extends AppState {
final int count;
const Counter({@required this.count});
@override
List<Object> get props => [count];
@override
String toString() => 'Counter { count: $count }';
}
Вот вам go для моего бло c слушатель / строитель:
BlocListener<CounterBloc, AppState>(
listener: (context, state) {
if (state is Counter) {
**Here I needed same state, means if I press getState, it should print 0 everytime**
print(state. value);
}
},
child: BlocBuilder<CounterBloc, AppState>(
builder: (context, state) {
return Center(
child: Text(
'${value}',
style: TextStyle(fontSize: 24.0),
),
);
},
),
)