android - 'LoginBloc' 不扩展 'Cubit<LoginState>'

标签 android flutter bloc

我是新来的。目前我使用 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/

相关文章:

flutter - 如何在 flutter block 模式中重用以前的状态字段?

flutter - 如何覆盖单个小部件的主题?

dart - Flutter Blue 自动书写

flutter - 在呈现后更新有状态的小部件变量?

flutter - 相当于 GetX 中的 BlocListener

android - 如何从具有引用格式类型的 attr 获取字符串?

java - 安卓工作室 : Could not create service of type DefaultGeneralCompileCaches using GradleScopeCompileServices. createGeneralCompileCaches()

android - Android 中的 SAX XML

java - 从相机获得更高质量的图片

dart - 如何在 Flutter 中使用 Bloc 正确设置 DropdownButton 的值?