inter cretasyo
inter cretasyo

Reputation: 179

What does it mean to use stream.listen in latest bloc package

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

Answers (1)

ReyHaynes
ReyHaynes

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

Related Questions