在一个 flutter 应用程序中使用多个提供者
Using more than one provider in a flutter app
我已经开始使用 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(),
},
),
);
}
}
这个名为“ListsProvider”的提供程序负责“提供”需要在不同屏幕上显示的列表。
我现在已经创建了第二个提供程序,我称之为“user_data_provider”,我现在也需要将它添加到我的应用程序中。它将负责向许多不同的屏幕提供用户数据。
我该怎么做?
要实现此目的,您可以使用 Multiprovider
,如下所示
将此添加到您的应用程序的顶部。如果你到处都需要这些对象。
@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
);
},
),
);
我已经开始使用 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(),
},
),
);
}
}
这个名为“ListsProvider”的提供程序负责“提供”需要在不同屏幕上显示的列表。 我现在已经创建了第二个提供程序,我称之为“user_data_provider”,我现在也需要将它添加到我的应用程序中。它将负责向许多不同的屏幕提供用户数据。
我该怎么做?
要实现此目的,您可以使用 Multiprovider
,如下所示
将此添加到您的应用程序的顶部。如果你到处都需要这些对象。
@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
);
},
),
);