Maneira correta de lidar com a navegação usando BLoC

Olá pessoal, estou usando o BLoC para o aplicativo que estou desenvolvendo, mas há alguns casos em que eu não tenho noção, quando você faz o login, aciona a API e aguarda o resultado naturalmente. para lidar, por exemplo, navegando para uma tela diferente. Atualmente, tenho algo parecido com isto

typedef void LoginSuccessCallback();
    class LoginBloc(){
    LoginBloc(Api this.api,LoginSuccessCallback loginSuccesCallback){
      _login.switchMap((ev) => api.login(ev.payload.email,ev.payload.password)).listen((_) => loginSuccessCallback);
     }
    }

Mas tenho certeza de que há uma maneira muito mais limpa de lidar com isso. Tentei pesquisar alguns exemplos que têm algo semelhante, mas não conseguiram encontrar nada.

questionAnswers(1)

yourAnswerToTheQuestion