如何在flutter Provider中为单个小部件使用多个使用者

时间:2020-01-23 17:26:06

标签: flutter provider flutter-provider

我无法使用多个消费者来为具有提供程序的单个窗口小部件忙吗?假设我的小部件是CurvedNavigationBar,并且该小部件中有4个项目。我还有4个扩展ChangeNotifier的类,并且负责CurvedNavigationBar中的每个项目。

如何在一个小部件中收听这4个更改通知?我看了看文档,却找不到这样的例子。我发现Consumer有一个builder方法,这意味着您可以只一次创建一个小部件 /一次收听一次。

我是否应该有一个扩展ChangeNotifier的类,然后在该小部件中更新值并仅使用一个Consumer来监听更新的值?

2 个答案:

答案 0 :(得分:24)

还有其他一些Consumer小部件。 Consumer2Consumer3Consumer4Consumer6。如果您想听4 ChangeNotifier,可以使用Consumer4

Consumer4(
  builder: (context, changeNotifier1, changeNotifier2, changeNotifier3, changeNotifier4, child) {
    // your widget
  }
)

答案 1 :(得分:15)

是的,您最多可以添加6个消费者,具体情况如下

    Consumer2<AuthProvider, StorageProvider>(
    builder: (context, authProvider, storageProvider, child) {

    }
    )