BlocListener не слушает с текущего экрана

#flutter #bloc #flutter-bloc #flutter-cubit

Вопрос:

Я новичок в Флаттере и использую блок для государственного управления. У меня два экрана

  1. Экран регистрации
  2. Экран проверки

В разделе «Экран регистрации» я добавил своего блочного пользователя, как показано ниже

       child: Center(
        child: Column(
          children: [
            BlocConsumer<RegistrationCubit, RegistrationState>(
              builder: (context, state) {
                return state.maybeWhen(null,
                    setUpRegistration: () =>
                        createRegistrationForm(context),
                    orElse: () {
                      return createRegistrationForm(context);
                    });
              },
              listener: (context, state) {
                state.maybeWhen(null,
                    registrationInProgress: () => {
                          showLoader(true),
                        },
                    registrationResponseReceived: (response) =>
                        requestForOTPOnSuccess(context, response),
                    registrationFailedGeneric: () =>
                        registrationFailureGeneric(
                            context,
                            "Error in registration",
                            "Something went wrong"),
                    orElse: () {});
              },
            ),
          ],
        ),
      ),
 

Как только мы получим успех от службы, мы перейдем на «Экран проверки» из «Экран регистрации».

И в «Экране проверки» я пытаюсь повторно использовать кубит регистрации в блоклистере, как показано ниже (снова вызов службы регистрации по нажатию кнопки)

         BlocListener<RegistrationCubit, RegistrationState>(
          listener: (context, st) {
            st.maybeWhen(null,
                registrationInProgress: () => {
                      showLoader(true),
                    },
                registrationResponseReceived: (_) => showGenericAlert(
                    context,
                    'My App',
                    'Code sent mobile number.'),
                registrationFailedGeneric: () => showGenericAlert(context,
                    'Error', 'An error occurred. Please try again later.'),
                orElse: () {});
          },
          child: Container(),
        )
 

Но вместо вызова блоклистенера «Проверка экрана» вызываются слушатели «Экран регистрации».

Не могли бы вы объяснить, почему слушатели «Экрана регистрации» вызываются из «Экрана проверки»?