Как использовать несколько потребителей для одного виджета в провайдере флаттера - PullRequest
3 голосов
/ 23 января 2020

Не могу обернуться, используя несколько потребителей для одного виджета с поставщиком? Предположим, мой виджет - CurvedNavigationBar, и у меня есть 4 элемента в этом виджете. У меня также есть 4 различных класса, которые расширяют ChangeNotifier, и отвечает за каждый элемент в CurvedNavigationBar.

Как я могу прослушать эти 4 уведомления об изменениях в одном виджете ? Я посмотрел документацию и не смог найти такой пример .. это вообще возможно? Я обнаружил, что в Consumer есть метод построителя, поэтому это означает, что вы можете создать виджет только один раз / и прослушать его один раз.

Если у меня есть один класс, который расширяет ChangeNotifier, а затем обновить значения в этом виджете и использует только одного получателя для прослушивания обновленных значений?

Ответы [ 2 ]

6 голосов
/ 24 января 2020

Есть несколько других Consumer виджетов. Consumer2, Consumer3, Consumer4 до Consumer6. Если вы хотите прослушать 4 ChangeNotifier, вы можете использовать Consumer4

Consumer4(
  builder: (context, changeNotifier1, changeNotifier2, changeNotifier3, changeNotifier4, child) {
    // your widget
  }
)
3 голосов
/ 06 апреля 2020

Да, вы можете добавить до 6 потребителей и будет следующим:

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

    }
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...