Флаттер: пакет BLoC - блок провайдера
Я использую этот пакет: https://pub.dartlang.org/packages/bloc. У меня есть 2 вида: в первом я отображаю список элементов, используя "bloc1", и через FloatingActionButton я могу перейти ко второму экрану, который использует "bloc2". На этом втором экране я хочу добавить элемент в свой предыдущий список через поставщика Bloc1 "bloc1", чтобы я мог сделать что-то вроде bloc1.dispatch(addElement)
, У меня вопрос: как я могу объявить поставщика блоков bloc1? Например что-то вроде: Bloc bloc = BlocProvider.of<Bloc1>(context)
1 ответ
Вам нужно будет обернуть ваше MaterialApp с BlocProvider как:
BlocProvider(bloc: bloc1, child: MaterialApp(...));
Затем вы можете получить доступ к bloc1 из любого места, используя:BlocProvider.of<Bloc1>(context)
Надеюсь, это поможет!
Bloc теперь поддерживает MultiBlocProvider, который помогает вам настроить все ваши блоки один раз в основном и использовать их в любом месте вашего кода.
В вашем main.dart
return MultiBlocProvider(
providers: [
BlocProvider<BlocA>(create: (BuildContext context) => BlocA(),),
BlocProvider<BlocB>(create: (BuildContext context) => BlocB(),),
],
child: MaterialApp(....),
)