Флаттер: пакет 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(....),
)
Другие вопросы по тегам