Flutter:BLoC 包 - bloc 提供者
Flutter: BLoC package - bloc provider
我正在使用这个包:https://pub.dartlang.org/packages/bloc。
我有 2 个视图:在第一个视图中,我使用 "bloc1" 显示元素列表,通过 FloatingActionButton,我可以导航到使用 "bloc2" 的第二个屏幕。在第二个屏幕中,我想通过 "bloc1" 的 Bloc 提供程序向我之前的列表中添加一个元素,以便我可以执行类似 bloc1.dispatch(addElement)
的操作。
我的问题是:如何声明 bloc1 的 bloc 提供者?
例如:
Bloc bloc = BlocProvider.of<Bloc1>(context)
您需要使用 BlocProvider 包装您的 MaterialApp,例如:
BlocProvider(bloc: bloc1, child: MaterialApp(...));
然后您可以使用以下方式从任何地方访问 bloc1:
BlocProvider.of<Bloc1>(context)
希望对您有所帮助!
Bloc 现在支持 MultiBlocProvider,它可以帮助您在主体中一次设置所有 bloc,然后在代码中的任何地方使用它。
在你的main.dart
return MultiBlocProvider(
providers: [
BlocProvider<BlocA>(create: (BuildContext context) => BlocA(),),
BlocProvider<BlocB>(create: (BuildContext context) => BlocB(),),
],
child: MaterialApp(....),
)
我正在使用这个包:https://pub.dartlang.org/packages/bloc。
我有 2 个视图:在第一个视图中,我使用 "bloc1" 显示元素列表,通过 FloatingActionButton,我可以导航到使用 "bloc2" 的第二个屏幕。在第二个屏幕中,我想通过 "bloc1" 的 Bloc 提供程序向我之前的列表中添加一个元素,以便我可以执行类似 bloc1.dispatch(addElement)
的操作。
我的问题是:如何声明 bloc1 的 bloc 提供者?
例如:
Bloc bloc = BlocProvider.of<Bloc1>(context)
您需要使用 BlocProvider 包装您的 MaterialApp,例如:
BlocProvider(bloc: bloc1, child: MaterialApp(...));
然后您可以使用以下方式从任何地方访问 bloc1:
BlocProvider.of<Bloc1>(context)
希望对您有所帮助!
Bloc 现在支持 MultiBlocProvider,它可以帮助您在主体中一次设置所有 bloc,然后在代码中的任何地方使用它。
在你的main.dart
return MultiBlocProvider(
providers: [
BlocProvider<BlocA>(create: (BuildContext context) => BlocA(),),
BlocProvider<BlocB>(create: (BuildContext context) => BlocB(),),
],
child: MaterialApp(....),
)