flutter - Bloc Delegate:类只能扩展其他类。尝试指定不同的超类,或删除 extends 子句
问题描述
我正在将我的 flutter_bloc 升级到版本:
flutter_bloc: ^7.0.0
从
flutter_bloc: ^3.2.0
但现在似乎 BlocDelegate 类似乎不起作用,我被困在这个问题上
这是我的代码
import 'package:flutter_bloc/flutter_bloc.dart';
class SimpleBlocDelegate extends BlocDelegate {
@override
void onEvent(Bloc bloc, Object event) {
print(event);
super.onEvent(bloc, event);
}
@override
void onError(Bloc bloc, Object error, StackTrace stackTrace) {
print(error);
super.onError(bloc, error, stackTrace);
}
@override
void onTransition(Bloc bloc, Transition transition) {
print(transition);
super.onTransition(bloc, transition);
}
}
有解决方案还是应该降级?
我的颤振版本:
Flutter 2.2.0 • 通道稳定•</p>
框架 • 修订 b22742018b(2 周前) • 2021-05-14 19:12:57 -0700
引擎 • 修订版 a9d88a4d18
工具 • Dart 2.13.0
解决方案
在 bloc 7.0.0 中,您可以使用 BlocObserver 类访问此 api,而不是从 BlocDelegate 扩展类应该从 BlocObserver 扩展。
class SimpleBlocObserver extends BlocObserver {
@override
void onCreate(BlocBase bloc) {...}
@override
void onEvent(Bloc bloc, Object event) {...}
@override
void onChange(BlocBase bloc, Object? event) {...}
@override
void onTransition(Bloc bloc, Transition transition) {...}
@override
void onError(BlocBase bloc, Object error, StackTrace stackTrace) {...}
@override
void onClose(BlocBase bloc) {...}
}
您可以在https://bloclibrary.dev/#/coreconcepts?id=blocobserver中阅读有关 BlocObserver 的更多信息
推荐阅读
- php - Laravel Datatable 与多个表的多对多关系
- ios - Swift:使用带有“where”子句的通用方法符合协议
- java - 在某些情况下,将 Long 乘以浮点数会导致错误
- html - 媒体查询调整大小时按钮自动调整
- python - 在 Azure Databricks 作业中运行 python 包 .egg
- database - 将模块名称存储在数据库中的地图中
- php - 如何在centos 6中为自动运行命令“service php-fpm restart”创建crontab?
- java - 如何在 Java 中正确实现 Tree 的 equals()、hashCode()?
- javascript - 如何向 JSPDF 添加语言?
- ios - 将原生 Google 登录按钮的用户交互设置为 false