flutter - 超类'Bloc' 在 dart 中没有零参数构造函数
问题描述
我是 Dart 语言开发的初学者。我尝试创建一个受此GitHub repo启发的示例 Flutter 应用程序 BLOC 模式,但我收到了一些与类继承相关的错误消息。我已经熟悉点网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());
}
}
}
}
编辑
我的 pubspec.yaml 依赖项如下:
解决方案
看起来您需要为集团提供初始状态。像这样的东西:
class UserRegBloc extends Bloc<UserRegEvent, UserRegState> {
UserRepository userRepository;
UserRegBloc({@required UserRepository userRepository}) : super(UserRegInitialState()) {
userRepository = UserRepository();
}
// ...
}
UserRegInitialState
的子类在哪里UserRegState
。
这是由于 bloc 库的不同版本造成的差异。您的链接项目使用 flutter_bloc 3.0 版,您问题中同一包的版本是 6.1.1。所以代码有细微的差别。基本上,该错误表明 的基类UserRegBloc
需要一个参数。所以你不能在不提供该参数的情况下声明一个子类,因此会出现错误。
推荐阅读
- html - 如何为移动屏幕居中图像(使用 HTML)?
- javascript - 带树枝的模板 nordemailer
- c# - 为什么异步 LINQ Select lambda 不需要返回值
- nginx - Nginx 镜像未找到后备
- python - 基于条件的 Numpy 拆分数组,没有 for 循环
- javascript - 迭代多级对象?
- c# - 用户控件结构属性的代码生成
- youtube - YouTube 自动播放问题
- excel - 使用 Excel VBA 在 Word 文档中搜索每个标题?
- node.js - 无法使用节点中的 multer API 将大文件上传到 Azure Blob 存储