Reputation: 179
I am using bloc: ^7.0.0 which is currently the latest bloc package and it is now saying that listen method is now deprecated. Instead, I should use stream.listen. But I don't understand how can I use the stream.listen. Please help to explain. Thanks!
Below is my code:
signInBloc.l̶i̶s̶t̶e̶n̶((state) {
if (state is CheckIfSignedInEventCompletedState) {
if (state.isSignedIn) {
print('logged in');
} else {
print('not logged in');
}
}
class SignInBloc extends Bloc<SignInEvent, SignInState> {
@override
Stream<SignInState> mapEventToState(
SignInEvent event,
) async* {
if (event is CheckIfSignedInEvent) {
yield* mapCheckIfSignedInEventToState();
}
}
Stream<SignInState> mapCheckIfSignedInEventToState() async* {
try {
bool isSignedIn = await authenticationRepository.checkIfSignedIn();
if (isSignedIn != null) {
if (isSignedIn) {
yield CheckIfSignedInEventCompletedState(true);
} else {
yield CheckIfSignedInEventCompletedState(false);
}
} else {
yield CheckIfSignedInEventFailedState();
}
} catch (e) {
print(e);
yield CheckIfSignedInEventFailedState();
}
}
}
Upvotes: 3
Views: 2095
Reputation: 3092
signInBloc.l̶i̶s̶t̶e̶n̶((state) {
simply becomes:
signInBloc.stream.listen((state) {
Check the bloc migration guide from 6.1.x to 7.0.0 here: https://bloclibrary.dev/#/migration?id=packagebloc
Upvotes: 9