在 Flutter 中,有没有像 root Saga 这样的 root BLoC 模式?
In Flutter, is there a root BLoC pattern like root Saga?
我正在学习 BLoC 模式,并且我过去曾使用 redux / saga,所以我已经知道了一点,但是我找不到任何方法将多个 BLoC / Cubits 聚合到一个根对象下在传奇中。
用例在根控件代码中:
home: BlocProvider(
create: (BuildContext context) => CounterCubit(),
child: MyHomePage(),
)
BlocProvider 仅采用一个 Cubit 状态,而我想提供某种形式的根状态
好的,我想我可以 MultiBlocProvider
class
我还制作了一个 Widget,可以聚合这些 cubits
class RootBlocProvider extends StatelessWidget {
final Widget child;
const RootBlocProvider({
Key key,
this.child
}) : super(key: key);
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (BuildContext context) => CounterCubit(),
),
BlocProvider(
create: (BuildContext context) => HotlineCubit(),
),
],
child: this.child
);
}
}
所以现在我可以像那样使用它了:
home: RootBlocProvider(
child: MyHomePage(),
)
您可以使用 MultiBlocProvider
CounterCubitBloc1 counterCubitBloc1;
CounterCubitBloc2 counterCubitBloc2;
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider.value(value: counterCubitBloc1),
BlocProvider.value(value: counterCubitBloc2),
],
child: MyHomePage(),
)
我正在学习 BLoC 模式,并且我过去曾使用 redux / saga,所以我已经知道了一点,但是我找不到任何方法将多个 BLoC / Cubits 聚合到一个根对象下在传奇中。
用例在根控件代码中:
home: BlocProvider(
create: (BuildContext context) => CounterCubit(),
child: MyHomePage(),
)
BlocProvider 仅采用一个 Cubit 状态,而我想提供某种形式的根状态
好的,我想我可以 MultiBlocProvider
class
我还制作了一个 Widget,可以聚合这些 cubits
class RootBlocProvider extends StatelessWidget {
final Widget child;
const RootBlocProvider({
Key key,
this.child
}) : super(key: key);
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(
create: (BuildContext context) => CounterCubit(),
),
BlocProvider(
create: (BuildContext context) => HotlineCubit(),
),
],
child: this.child
);
}
}
所以现在我可以像那样使用它了:
home: RootBlocProvider(
child: MyHomePage(),
)
您可以使用 MultiBlocProvider
CounterCubitBloc1 counterCubitBloc1;
CounterCubitBloc2 counterCubitBloc2;
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider.value(value: counterCubitBloc1),
BlocProvider.value(value: counterCubitBloc2),
],
child: MyHomePage(),
)