flutter - 错误:超类“Bloc”没有不带参数的未命名构造函数。类 OverViewListBloc 扩展 Bloc> {
问题描述
为什么会出现这个错误?:
Error: The superclass, 'Bloc', has no unnamed constructor that takes no arguments.
class OverViewListBloc extends Bloc<OListEvent, List<OList>> {
我可以用 修复它OverViewListBloc(List<OList> initialState) : super(initialState);
,但我不想这样修复它,因为我必须给出一个论点。
这是我的代码:
class OverViewListBloc extends Bloc<OListEvent, List<OList>> {
OverViewListBloc(List<OList> initialState) : super(initialState);
List<OList> get initialState => List<OList>();
@override
Stream<List<OList>> mapEventToState(OListEvent event) async* {
if (event is SetList) {
yield event.foodList;
} else if (event is AddList) {
List<OList> newState = List.from(state);
if (event.newolist != null) {
newState.add(event.newolist);
}
yield newState;
} else if (event is DeleteList) {
List<OList> newState = List.from(state);
newState.removeAt(event.olistindex);
yield newState;
} else if (event is UpdateList) {
List<OList> newState = List.from(state);
newState[event.listIndex] = event.newolist;
yield newState;
}
}
}
还有其他修复吗?
解决方案
Bloc 改变了它设置初始状态的方式:
不再需要此行:
List<OList> get initialState => List<OList>();
相反,您将该值传递给构造函数:
OverViewListBloc() : super(List<OList>());
使用新的dart-null-safety功能弃用 的空构造函数 List<>
,您可以使用
OverViewListBloc() : super(<OList>[]);
推荐阅读
- python - 如何实例化具有名称属性的 io.TextIOWrapper 对象?
- firebase - 无法更新来自 Firebase 的电子邮件(身份验证)
- java - 对 ExceptionHandler 类进行单元测试
- html - 如何在角度 8 中将多个对象 json 数据操作到表中
- python - 使用字典作为查找参考过滤熊猫数据框中的值
- flutter - 在 Dart 中两次提到列表元素的数据类型
- emacs - 是否可以禁止特定缓冲区的字体锁定?
- r - R - 从长到宽,按两个变量分组
- java - Sonarqube - 如何为 Kotlin 项目启用许可证检查器?
- python - 正则表达式处理带有特殊字符的标签,而不考虑顺序