在 flutter 应用程序中使用多个提供程序

Syl*_*ack 2 provider dart flutter

我已经开始使用 PROVIDER 来管理我的应用程序中的状态。我按照教程使用 ChangeNotifierProvider 包装了我的 Material 应用程序。这是代码:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: (BuildContext context) => ListsProvider(),
      child: MaterialApp(
        title: 'WordsApp',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        initialRoute: StartingPage.id,
        routes: {
          StartingPage.id: (context) => StartingPage(),
         
          RegistrationScreen.id: (context) => RegistrationScreen(),
        
        },
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这个名为“ListsProvider”的提供程序负责“提供”需要在不同屏幕上显示的列表。我现在创建了第二个提供程序,我将其称为“user_data_provider”,现在我也需要将其添加到我的应用程序中。它将负责向许多不同的屏幕提供用户数据。

我怎样才能做到这一点 ?

Pro*_*ude 6

要实现此目的,您可以使用Multiprovider如下所示的方法

将其添加到您的应用程序的顶部。如果你到处都需要这些 obj。

@override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<user_data_provider>(
          create: (_) => user_data_provider(),
        ),
        ChangeNotifierProvider<ListsProvider>(
          create: (_) => ListsProvider(),
        ),
      ],
      child: Builder(
        builder: (BuildContext context) {
          
          return MaterialApp(
            //YOur code goes here
          );
        },
      ),
    );
Run Code Online (Sandbox Code Playgroud)