I'm new in flutter. currently I used bloc to help me.
When I'm used bloc in UI, I'm always got 'LoginBloc' doesn't extend 'Cubit<LoginState>'
I'm used dependencies flutter_bloc
Here my UI
@override
Widget build(BuildContext context) {
return Scaffold(
body: BlocBuilder<LoginBloc, LoginState>(
builder: (BuildContext context, LoginState state) {},
),
);
}
here my bloc class.
class LoginBloc extends Bloc<LoginEvent, LoginState> {
final AuthenticationService authenticationService;
LoginBloc(this.authenticationService) : super(null);
@override
Stream<LoginState> mapEventToState(LoginEvent event) async* {
if (event is LoginSubmitted) {
yield* _loginMapToState(event);
}
}
Stream _loginMapToState(LoginSubmitted event) async* {
try {
UserDTO userDTO =
UserDTO(event.username, event.password, event.rememberMe);
var response =
await authenticationService.authenticate(userDTO.toJson().toString());
if (response.statusCode == 200) {
Map<String, String> token = jsonDecode(response.body);
await Preferences.setString(ConstValue.TOKEN, token['id_token']);
yield LoginSuccess();
}
} catch (e) {
yield LoginError(e);
}
}
}