我最初是使用简单的更改通知提供程序开发我的应用程序。后来我决定使用 Firestore 和 StreamProvider。现在我有一个返回列表的流。从 Stream Provider 获取数据后,我想在 Change Notifier 中填充我的列表。更改通知器具有不同的功能,我的小部件正在使用这些功能来获取中央列表的不同子集。这就是为什么我不希望小部件直接使用流。我希望他们使用将由 StreamProvider 更新的更改通知程序提供程序。
return MultiProvider(
providers: [
ChangeNotifierProvider<TodoProvider>(
create: (_) => TodoProvider()),
StreamProvider<List<Todo>>.value(
value: new DatabaseServices(
FirebaseAuth.instance.currentUser.uid)
.getUserTodoList()),
],
child: MaterialApp(
title: 'Awesome Todo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: AppNavigationBar(),
),
// child:
// AppNavigationBar()
)
现在您可以看到,在多提供者数组中,我有我的更改通知提供者和流提供者。当我从 DatabaseService.getUserTodoList() 获取更新列表时,我想更新 TodoProvider 类中的列表。在这种情况下代理提供者有用吗?感谢您阅读帖子。任何帮助将不胜感激。