gpt4 book ai didi

flutter - 如果我们在 BlocProvider 中有 3 个 BLoC,我们可以在同一个类中使用 2 个 BLoCBuilder 吗?

转载 作者:行者123 更新时间:2023-12-03 03:16:54 29 4
gpt4 key购买 nike

假设我在 BlocProviderTree 中有 3 个 BLoC,这意味着这些 bloc 可用于该类。其中一个用作 BlocListener,现在我希望将其他两个 BLoC 用作 BlocBuilders,因为我需要在同一页面上构建它们的状态。 BlocListener 接受 child 而不是 child 。请帮忙!

BlocListener 接受 child 而不是 children。请帮忙!

BlocProviderTree(
blocProviders: [

BlocProvider<EvenBloc>(bloc: _evenBloc),
BlocProvider<SumBloc>(bloc: _sumsBloc,),
BlocProvider<SpacesBloc>(bloc: _spacesBloc,),

],
child: BlocListener(
bloc: _evenBloc,
listener: (BuildContext context, EvenState state) {
if (state is NowEven) {
_sumsBloc.dispatch(LoadSums());
}
},

child: BlocBuilder<SumsEvent,SumsState>(
bloc: _programsBloc,
builder: (BuildContext context, SumsState state) {
if (state is SumsEmpty)
return Container(height: 0.0, width: 0.0,);
if (state is SumsLoading)
return Evens(
child: SpinKitDoubleBounce(
color: darkIndigo,
size: 70.0,
),
);
else if (state is SumsLoaded)
return _body( context,state.sums);
},
)
)
),

如果项目的数量是偶数,我想要带总和的 SpaceNames。我得到的总和是正确的,但 Spaces 在其他 Bloc 中。如何定义两个 BlocBuilder?

最佳答案

您可以将 BlocBuilder 彼此嵌套:

BlocBuilder(
bloc: BlocProvider.of<Foo>(context),
builder: (context, FooState fooState) {
return BlocBuilder(
bloc: BlocProvider.of<Bar>(context),
builder: (context, BarState barState) {
return Text('$fooState $barState');
},
);
},
);

关于flutter - 如果我们在 BlocProvider 中有 3 个 BLoC,我们可以在同一个类中使用 2 个 BLoCBuilder 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com