Flutter BLOC 和 Provider 如何注册在一起

Tha*_*ham 9 provider flutter bloc

我正在使用 BLOC 架构编写一个应用程序,并在 main.dart 中注册像这样的块提供程序:

runApp(MultiBlocProvider(providers: [
    BlocProvider<OrderBloc>(
      create: (context) {
        return OrderBloc()..add(OrderInitialEvent());
      },
    ),
    BlocProvider<AuthenticationBloc>(
      create: (context) {
        return AuthenticationBloc(userService: userService)..add(AppStarted());
      },
    ),
    ...
   ], child: MyApp()));
Run Code Online (Sandbox Code Playgroud)

现在我需要将 Provider 方法与 BLOC 一起使用,但不知道如何注册它?是否可以?谢谢

nvo*_*igt 10

你可以嵌套它们:

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

  • 谢谢。在询问之前应该尝试这种方式。 (2认同)