0

所以我有这个代码

@override
Widget build(BuildContext context) {
  return MultiBlocProvider(
    providers: [
      BlocProvider<ProfilePageBloc>(
        create: (context) => ProfilePageBloc(userRepository: UserRepository.instance),
      ),
      BlocProvider<HomeBloc>(
        create: (context) => HomeBloc(),
      ),
    ],
    child: BlocBuilder<HomeBloc, HomeState>(
      builder: (context, state) {
        return Scaffold(
          body: BlocBuilder<HomeBloc, HomeState>(
            builder: (context, state) {

              if (state is StateThatDoesNotMatter) {
                final HomeBloc homeBloc = BlocProvider.of<HomeBloc>(context);
                final ProfilePageBloc profileBloc = BlocProvider.of<ProfilePageBloc>(context);
                print("homeBloc: ${homeBloc.toString()}");
                print("profileBloc: ${profileBloc.toString()}");


              return Center(
                child: Text("Doesn't really matter"),
              );
            },
          ),
        );
      },
    ),
  );
}

我得到的输出是

homeBloc: Instance of 'HomeBloc'
profileBloc: null

我希望profileBloc像以前那样被实例化homeBloc

这让我完全无法继续开发。我不知道为什么会这样。最好的是,它工作了几次,但我无法重现这种行为。

任何帮助将不胜感激

4

1 回答 1

0

事实证明,'ProfilePageBloc' 没有被实例化,因为它的构造函数中的断言失败了。我在问题中提供的代码不足以解决它。

更多信息在这里

于 2019-12-30T19:14:53.220 回答