1

我最初是使用简单的更改通知提供程序开发我的应用程序。后来我决定使用 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 类中的列表。在这种情况下代理提供者有用吗?感谢您阅读帖子。任何帮助将不胜感激。

4

0 回答 0