首页 > 解决方案 > Flutter,如何将exist Bloc用于其他屏幕?

问题描述

假设 A 类是任意根的,其子类是 B、C 和 D 类。

(并非所有类都在同一层次结构中)

当我在 D 类中使用 BlocConsumer 或 BlocBuilder 时,出现错误。

我只想重用 A 类和 B 类中使用的 Bloc 状态。

有什么解决办法吗?谢谢

- 更新

我说的是这个https://github.com/felangel/bloc/issues/74

除了将它作为导航器参数一个一个地传递给类之外,还有其他方法吗?

标签: flutterflutter-dependenciesbloccubit

解决方案


注意:我假设您正在使用该flutter_bloc库,但即使您不是,概念也是相同的。

您要访问的 BLoC 必须在您要访问此 BLoC 的所有屏幕/页面之上提供。解决问题的最简单方法是将根 Widget(可能MaterialApp)包装为BlocProvider

runApp(
  BlocProvider<YourBloc>(
    create: (_) => YourBloc(), // create your BLoC here
    child: MaterialApp(...),
  ),
);

有关更多信息,我建议您观看此视频:https ://www.youtube.com/watch?v=laqnY0NjU3M


推荐阅读