我正在使用以下软件包:https://pub.dartlang.org/packages/bloc。
我有2个视图:在第一个视图中,我使用“ bloc1”显示元素列表,并且通过FloatingActionButton,我可以导航到使用“ bloc2”的第二个屏幕。在第二个屏幕中,我想通过Bloc提供程序“ bloc1”将元素添加到我的上一个列表中,以便可以执行类似bloc1.dispatch(addElement)
的操作。
我的问题是:如何声明bloc1的bloc提供程序?
例如类似:
Bloc bloc = BlocProvider.of<Bloc1>(context)
答案 0 :(得分:1)
您需要使用BlocProvider包装MaterialApp,例如:
BlocProvider(bloc: bloc1, child: MaterialApp(...));
然后,您可以使用以下任何地方从任何位置访问bloc1:
BlocProvider.of<Bloc1>(context)
希望有帮助!
答案 1 :(得分:-1)
Bloc现在支持MultiBlocProvider,该功能可帮助您在主目录中一次设置所有bloc,并在代码中的任何位置使用它。
在您的main.dart中
return MultiBlocProvider(
providers: [
BlocProvider<BlocA>(create: (BuildContext context) => BlocA(),),
BlocProvider<BlocB>(create: (BuildContext context) => BlocB(),),
],
child: MaterialApp(....),
)