es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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,
          // ),
        ));
  }
}

Tags:  , , , ,

Answer

  1. Avatar for 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
    Stream mapEventToState(
    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,>

Comments are closed.