我是 Dart 语言开发的初学者。我尝试创建一个示例 flutter 应用程序 BLOC 模式,其灵感来自于这个 GitHub 存储库 https://github.com/newajthevillager/FirebaseUserAuthentication---BLoC,但我收到一些与类继承相关的错误消息。我已经熟悉了dot net C#语言中的继承以及超类和子类编程。但就飞镖而言,我需要一些建议。
这是我的代码:
class UserRegBloc extends Bloc<UserRegEvent, UserRegState> {
UserRepository userRepository;
UserRegBloc({@required UserRepository userRepository}) {
userRepository = UserRepository();
}
@override
UserRegState get initialState => UserRegInitial();
@override
Stream<UserRegState> mapEventToState(UserRegEvent event) async* {
if (event is SignUpButtonPressed) {
yield UserRegLoading();
try {
var user = await userRepository.signUpUserWithEmailPass(
event.email, event.password);
print("BLOC : ${user.email}");
yield UserRegSuccessful(user: user);
} catch (e) {
yield UserRegFailure(message: e.toString());
}
}
}
}
Edit
我的 pubspec.yaml 依赖项如下:
看起来您需要向该集团提供一个初始状态。像这样的事情:
class UserRegBloc extends Bloc<UserRegEvent, UserRegState> {
UserRepository userRepository;
UserRegBloc({@required UserRepository userRepository}) : super(UserRegInitialState()) {
userRepository = UserRepository();
}
// ...
}
where UserRegInitialState
是一个子类UserRegState
.
这是由于bloc库版本不同造成的差异。您的链接项目使用 flutter_bloc 版本 3.0,您问题中同一包的版本是 6.1.1。所以代码上有一点小小的差别。该错误基本上表明UserRegBloc
需要一个参数。因此,如果不提供该参数,就无法声明子类,因此会出现错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)