Flutter BLOC 和 Provider 如何注册在一起
Posted
技术标签:
【中文标题】Flutter BLOC 和 Provider 如何注册在一起【英文标题】:Flutter BLOC and Provider how to register them together 【发布时间】:2020-12-02 04:53:02 【问题描述】:我正在编写一个使用 BLOC 架构的应用程序,并在 main.dart 中像这样注册了 bloc 提供程序:
runApp(MultiBlocProvider(providers: [
BlocProvider<OrderBloc>(
create: (context)
return OrderBloc()..add(OrderInitialEvent());
,
),
BlocProvider<AuthenticationBloc>(
create: (context)
return AuthenticationBloc(userService: userService)..add(AppStarted());
,
),
...
], child: MyApp()));
现在我需要将 Provider 方法与 BLOC 一起使用,但不知道如何注册?可能吗?谢谢
【问题讨论】:
【参考方案1】:你可以嵌套它们:
runApp(MultiBlocProvider(providers: [
BlocProvider<OrderBloc>(
create: (context)
return OrderBloc()..add(OrderInitialEvent());
,
),
BlocProvider<AuthenticationBloc>(
create: (context)
return AuthenticationBloc(userService: userService)..add(AppStarted());
,
),
...
],
child:
MultiProvider(
providers: [
Provider<Something>(create: (_) => Something()),
Provider<SomethingElse>(create: (_) => SomethingElse()),
Provider<AnotherThing>(create: (_) => AnotherThing()),
],
child: MyApp(),
)));
【讨论】:
谢谢。在询问之前应该尝试过这种方式。以上是关于Flutter BLOC 和 Provider 如何注册在一起的主要内容,如果未能解决你的问题,请参考以下文章
Flutter BLOC 和 Provider 如何注册在一起
Flutter - 了解 Provider、Bloc 的生命周期以及何时处理流 [重复]
使用 Provider 向整个 Flutter 模块全局提供 BLoC