Событие от BlocProvider в MultiBlocProvider не отправляется при загрузке экрана. флаттер - PullRequest
1 голос
/ 28 февраля 2020

Я все еще очень новичок в Flutter и Blo c в целом, и я застрял в понимании этого.

Когда приложение запускается, я получаю печать в консоли, как и ожидалось:

флаттер: событие - AppStarted флаттер: транзакция - переход {currentState: неинициализировано, событие: AppStarted, nextState: Authenticated}

from:

runApp(
    BlocProvider<AuthenticationBloc>(
        create: (context) {
          return AuthenticationBloc(
            userRepository: UserRepository(),
          )..add(AppStarted());
        },
        child: 

, но когда MapScreen загружает, я не получаю:

Widget build(BuildContext context) {
    return MultiBlocProvider(
      providers: [
//        BlocProvider<AlertBloc>(
//          create: (context) {
//            return AlertBloc(alertRepository: FirebaseAlertRepository())
//              ..add(LoadAlerts());
//          },
//        ),
        BlocProvider<MapBloc>(create: (context) {
          return MapBloc(mapRepository: MapRepository())
            ..add(GetLocationStream())
            ..add(CenterMap());
        }),
      ],
      child: Scaffold

Вместо этого я получаю отпечатки, когда добавляю событие из onPressed обратного вызова:

onPressed: () {
                              BlocProvider.of<MapBloc>(context)
                                  .add(CenterMap());
                            },

flutter: Event является экземпляром флаттера «GetLocationStream»: событие является экземпляром флаттера «CenterMap»: событие является экземпляром «CenterMap»

Являются ли первые два события теми, которые я добавил через BlocProvider?

Я понял проблему, потому что при загрузке экрана я не получаю распечатки для методов репозитория, которые я вызываю MapBloc, но я делаю, как только я нажимаю на кнопку, так же как я получаю распечатки состояния:

флаттер: транзакция является переходом {currentState: MapCe ntered {location: null, locationStream: null}, событие: экземпляр CenterMap, nextState: MapCentered {location: null, locationStream: null}}

Работает ли добавление событий из BlocProvider иначе когда в MultiBlocProvider?

Большое спасибо. Приветствия.

...