Multi BlocBuilder во Flutter

Я новичок во флаттере, и есть ли какие-либо примеры или документация, относящиеся к multi blocbuilder на одной странице с использованием пакета flutter_bloc во Flutter.

2 ответа

Последние документы flutter_bloc объясняют, как создать MultiBlocBuilder, когда ваш конструктор виджетов использует несколько блоков:

      Builder(
  builder: (context) {
    final stateA = context.watch<BlocA>().state;
    final stateB = context.watch<BlocB>().state;
    final stateC = context.watch<BlocC>().state;

    // return a Widget which depends on the state of BlocA, BlocB, and BlocC
  }
);

The flutter_multi_bloc_builderнесколько упрощает этот синтаксис (... не так ли?), его последний документ также описывает, как сделать то же самое, используя этот пакет:

      final bloc1 = BlocProvider.of<MyBloc1>(context);
final bloc2 = BlocProvider.of<MyBloc2>(context);
final bloc3 = BlocProvider.of<MyBloc2>(context);

MultiBlocBuilder(
    blocs: [bloc1, bloc2, bloc3],
    builder: (context, states) {
        final state1 = states.get<MyBloc1State>();
        final state2 = states.get<MyBloc2State>();
        final state3 = states.get<MyBloc3State>();
        
        if (state1 is Loading || state2 is Loading || state3 is Loading) {
            return Text("Loading");
        } else {
            return Text("SHow some content");
        }
    }
);

Возможно, было бы полезнее, если бы некоторыеbuildWhenилиselectorэквивалент был предложен в этом пакете?

Я надеюсь, что это отвечает на вопрос.

BlocBuilder(), как и любые другие виджеты, можно использовать несколько раз. Чтобы использовать несколько BlocBuilders на экране, вам просто нужно предоставить необходимый Streamable (Bloc) на разных BlocBuilder .

Другие вопросы по тегам