我是新来的。目前我使用 bloc 来帮助我。
当我在 UI 中使用 bloc 时,我总是得到 'LoginBloc' doesn't extend 'Cubit<LoginState>'
我用过依赖flutter_bloc
这是我的用户界面
@override
Widget build(BuildContext context) {
return Scaffold(
body: BlocBuilder<LoginBloc, LoginState>(
builder: (BuildContext context, LoginState state) {},
),
);
}
这是我的集团类(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);
}
}
}
最佳答案
您需要使用cubit或bloc。您在这里使用 bloc 并扩展 cubitState 这是不可行的。尝试扩展 BlocState 而不是 CubitState。此外,共享 bloc 代码的事件和状态部分,这可能有助于调试您的代码。
关于android - 'LoginBloc' 不扩展 'Cubit<LoginState>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63127393/