Как передать ChangeNotifier в навигаторе?

У меня есть класс, который расширяется до ChangeNotifier. Моя домашняя страница прослушивает одну из переменных типа bool этого класса и обновляет ее пользовательский интерфейс. На моей домашней странице у меня есть Navigator.push (screen1), а отсюда у меня есть еще один Navigator (screen2). На экране screen2 я хочу изменить значение этой переменной bool класса. Итак, как я могу передать своего провайдера, чтобы я сделал изменение с экрана 2, который сложен в навигаторе, и я мог слушать на своей домашней странице?
Мой ChangeNotifierProvider добавлен над домашней страницей.

edit: Решение, которое сработало для меня, добавило ChangeNotifierProvider выше MaterialApp в MultiProvider
, но является ли это эффективным способом? поскольку я разместил ChangeNotifierProvider выше в моем дереве, где он не использовался.


person kanwar manraj    schedule 02.12.2020    source источник


Ответы (1)


Обычной практикой (см. пример поставщика) является наличие Provider в верхней части дерева виджетов. . Так что да, это эффективно, не беспокойтесь.

person MickaelHrndz    schedule 03.12.2020