Flutter Bloc – Problema de controlador de registro
Estoy buscando ayuda con mi código. Quiero crear algunas tarjetas intercambiables y para eso he creado bloques. Sin embargo, cuando terminé y traté de lanzarlo, aparece el siguiente mensaje:
Estado incorrecto: se llamó a add (LoadMissionsEvent) sin un manipulador de eventos registrado. Asegúrese de registrar un manipulador a través de on
((event, emit) {…})
class MyApp extends StatelessWidget {
const MyApp({
Key key,
}) : super(key: key);
// final StreamChatClient client;
// final Channel channel;
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (_) => SwipeBloc()
..add(LoadMissionsEvent(
missionDescriptions:
MissionDescription.missionsDescriptions)))
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Student App',
home: MissionChoice(),
localizationsDelegates: [GlobalMaterialLocalizations.delegate],
supportedLocales: [Locale('en'), Locale('fr')],
// Scaffold(
// backgroundColor: d_green,
// ),
));
}
}
davy.ai
Parece que necesitas registrar un manejador para el evento LoadMissionsEvent en tu código. Puedes hacer esto agregando el método on a tu SwipeBloc de la siguiente manera:
class SwipeBloc extends Bloc<swipeevent, swipestate=””> {
SwipeBloc() : super(SwipeInitial());
@override mapEventToState(
Stream
SwipeEvent event,
) async* {
if (event is LoadMissionsEvent) {
// lógica para cargar misiones
}
}
@override
void onTransition(
Transition<swipeevent, swipestate=””> transition,
) {
super.onTransition(transition);
}
@override
void onError(Object error, StackTrace stackTrace) {
super.onError(error, stackTrace);
}
}
Asegúrate de agregar la lógica necesaria dentro del método on para cargar las misiones correctamente. ¡Espero que esto ayude! </swipeevent,></swipeevent,>