首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'LoginBloc‘不扩展'Cubit<LoginState>’

'LoginBloc‘不扩展'Cubit<LoginState>’
EN

Stack Overflow用户
提问于 2020-07-28 05:09:41
回答 4查看 2.2K关注 0票数 4

我是新来的。目前我用集团帮我。当我在UI中使用区块时,我总是使用'LoginBloc' doesn't extend 'Cubit<LoginState>' --我这里使用的是依赖项-- flutter_bloc

代码语言:javascript
复制
 @override
Widget build(BuildContext context) {
 return Scaffold(
  body: BlocBuilder<LoginBloc, LoginState>(
    builder: (BuildContext context, LoginState state) {},
   ),
 );
 }

这是我的集体课。

代码语言:javascript
复制
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);
 }
 }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-07-28 05:12:44

你需要要么用肘,要么用整块。你在这里使用集团和扩展cubitState,这是不可行的。尝试扩展BlocState而不是CubitState。此外,共享单元代码中的事件和状态部分,这可能有助于调试代码。

票数 2
EN

Stack Overflow用户

发布于 2020-09-13 09:08:38

这个问题可能会出现在您的Bloc事件类中。例如,如果您有下面的类,它可能会导致该错误。

代码语言:javascript
复制
class GetTrackStages extends StagesEvent {
  final String trackId;

 GetTrackStages({@required this.trackId});
}

如果你有下面的课,你就不会有这个问题了

代码语言:javascript
复制
class GetTrackStages extends StagesEvent {
  final String trackId;

  const GetTrackStages({@required this.trackId});
}

您所需要做的就是向事件构造函数中添加一个const

票数 0
EN

Stack Overflow用户

发布于 2020-08-01 12:32:13

在我的例子中,我在BlocBuilder参数上出错了。第一个总是布洛克,第二个永远是国家。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63127393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档