Flutter:BLoC软件包-Bloc提供商

时间:2019-01-22 14:33:46

标签: flutter provider bloc

我正在使用以下软件包:https://pub.dartlang.org/packages/bloc。 我有2个视图:在第一个视图中,我使用“ bloc1”显示元素列表,并且通过FloatingActionButton,我可以导航到使用“ bloc2”的第二个屏幕。在第二个屏幕中,我想通过Bloc提供程序“ bloc1”将元素添加到我的上一个列表中,以便可以执行类似bloc1.dispatch(addElement)的操作。 我的问题是:如何声明bloc1的bloc提供程序? 例如类似:  Bloc bloc = BlocProvider.of<Bloc1>(context)

2 个答案:

答案 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(....),
)