FlutterBlo c: BlocListener не использует испущенное состояние - PullRequest
1 голос
/ 31 марта 2020

Blo c, который доставляет мне неприятности - это AuthBlo c. Вот как это инициализируется:

void main() {
  runApp(MultiBlocProvider(
      providers: [
        BlocProvider<AuthBloc>(
          create: (_) => AuthBloc(),
        ),
        BlocProvider<SignUpBloc>(create: (_) => SignUpBloc()),
      ],
      child: ChangeNotifierProvider(
          create: (BuildContext context) => UserModel(), child: App())));
}

Вот где мне нужно состояние, на которое нужно воздействовать, но в некоторых случаях прослушиватель blo c не вызывается:

Widget home(BuildContext context) {
    // ignore: close_sinks
    var authBloc = BlocProvider.of<AuthBloc>(context);
    return BlocListener(
      bloc: authBloc,
      listener: (context, state) {

        UserModel userModel = Provider.of<UserModel>(context, listen: false);
        if (state is SignedInState) {
          userModel.updateUser(state.user);

          Navigator.of(context).pushReplacementNamed(kHomeRoute);
        }
      },
      child: HomePage(),
    );
  }
}

Я знаю, что blo c получает событие, но когда я выдаю состояние, этот blo c не перестраивается. Есть мысли о том, где я иду не так?

Спасибо!

...