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 .