Migrando mi aplicación bloc a null safety. Error: ‘AssignmentBloc’ no se ajusta a la restricción ‘BlocBase‘ del parámetro de tipo ‘B’.
Estoy migrando mi aplicación de flutter a null-safety y obtengo este error en mi BlocProvider y BlocBuilder.
‘AssignmentBloc’ no cumple con el límite ‘BlocBase
Prueba a utilizar un tipo que sea o sea una subclase de ‘BlocBase
He revisado las soluciones a problemas similares y parece que ya he hecho lo que sugirieron. Puede que me esté perdiendo algo y necesito ayuda, por favor.
El widget.
class AssignmentScreenWidgetState extends State<assignmentscreenwidget> {
AssignmentBloc? _bloc;
bool assignmentAdd = false;
@override
void initState() {
super.initState();
_bloc = BlocProvider.of<assignmentbloc>(context)
..add(FetchEvent(widget.courseId, widget.assignmentId));
}
final GlobalKey<assignmentdraftwidgetstate> assignmentDraftWidgetState =
GlobalKey<assignmentdraftwidgetstate>();
@override
Widget build(BuildContext context) {
return BlocListener<assignmentbloc, assignmentstate="">( // donde están los errores
bloc: _bloc,
listener: (BuildContext context, AssignmentState state) {
if (state is CacheWarningAssignmentState) {
showDialog(
context: context, builder: (context) => WarningLessonDialog());
}
},
child: BlocBuilder<assignmentbloc, assignmentstate="">( // donde están los errores
builder: (context, state) {
return Scaffold(
...
El bloc.
class AssignmentBloc extends Bloc<assignmentevent, assignmentstate?=""> {
final AssignmentRepository _assignmentRepository;
final CacheManager cacheManager;
AssignmentBloc(this._assignmentRepository, this.cacheManager) : super(null);
@override
AssignmentState get initialState => InitialAssignmentState();
...
El estado.
@immutable
abstract class AssignmentState {}
class InitialAssignmentState extends AssignmentState {}
class LoadedAssignmentState extends AssignmentState {
final AssignmentResponse assignmentResponse;
LoadedAssignmentState(this.assignmentResponse);
}
class ErrorAssignmentState extends AssignmentState {}
class CacheWarningAssignmentState extends AssignmentState {}
Por favor, toda la ayuda que pueda obtener es muy apreciada.</assignmentevent,></assignmentbloc,></assignmentbloc,>
davy.ai
Parece que la clase
AssignmentBloc
no está ampliando la claseBlocBase <assignmentstate>
. Para solucionar este problema, cambie la firma de la clase para ampliar la claseBlocBase <assignmentstate>
de la siguiente manera:Esto asegurará que
AssignmentBloc
se ajuste al límite de los parámetros de tipoBlocProvider
yBlocBuilder
.</assignmentevent,>