我正在使用这个包:https ://pub.dartlang.org/packages/bloc 。我有 2 个视图:在第一个视图中,我使用“bloc1”显示元素列表,并且通过 FloatingActionButton,我可以导航到使用“bloc2”的第二个屏幕。在第二个屏幕中,我想通过“bloc1”的 Bloc 提供程序将一个元素添加到我以前的列表中,这样我就可以执行类似bloc1.dispatch(addElement)
. 我的问题是:如何声明 bloc1 的 bloc 提供者?例如:
Bloc bloc = BlocProvider.of<Bloc1>(context)
问问题
786 次
2 回答
1
您需要使用 BlocProvider 包装您的 MaterialApp,例如:
BlocProvider(bloc: bloc1, child: MaterialApp(...));
然后您可以使用以下命令从任何地方访问 bloc1:
BlocProvider.of<Bloc1>(context)
希望有帮助!
于 2019-02-26T04:05:55.287 回答
0
Bloc 现在支持 MultiBlocProvider,它可以帮助您在主程序中设置所有块并在代码中的任何位置使用它。
在你的 main.dart
return MultiBlocProvider(
providers: [
BlocProvider<BlocA>(create: (BuildContext context) => BlocA(),),
BlocProvider<BlocB>(create: (BuildContext context) => BlocB(),),
],
child: MaterialApp(....),
)
于 2020-06-26T10:28:01.197 回答