Сбросить данные провайдера - Flutter - PullRequest
0 голосов
/ 06 января 2020

Я использую мультипровайдер в своем приложении. Провайдер работает отлично, он хранит данные и обеспечивает отличные события, когда что-то меняется.

Теперь у меня есть такой сценарий в моем приложении ->

Пользователь 1 вошел в систему. Теперь, когда я добавляю вторую учетную запись в том же логине (например, Gmail - Multi-Account), провайдеры возвращают мне более старые значения.

Я пытался найти сброс значений провайдеров, но не смог найти ничего, связанного с этим.

Пробовал, но не работал:

  • Создан новый объект провайдеров для сброса.
  • Provider.of<LoginProvider>(context).dispose();

1 Ответ

0 голосов
/ 06 января 2020

Чтобы обновить значение поставщика, вы можете вызвать его с помощью конструктора .value() и использовать переменную, зависящую от состояния.

class SomeWidgetState extends State<SomeWidget> {
    Logins logins = [];

    void addLogin(Login newLogin) {
        setState((){
            logins = [...logins, newLogin];
        });
    }

    @override
    Widget build(BuildContext context) {
        return Provider.value(
            value: logins,
            child: OtherWidget(),
        );
    }

При вызове addLogin будет зарегистрировано зарегистрированное значение в поставщике.

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