Flutter 中的多 BlocBuilder

SOU*_*ADH 3 dart flutter flutter-bloc

我是 flutter 的初学者,是否有通过在 Flutter 中使用 flutter_bloc 包在一页中与多 blocbuilder 相关的示例或文档。

Wil*_*l59 12

最新的 flutter_bloc文档解释了当您的 Widget 构建器依赖于多个 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
  }
);
Run Code Online (Sandbox Code Playgroud)

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");
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

如果此包中提供了一些buildWhen或同等内容,可能会更有用?selector

我希望这能回答这个问题。