Как я могу узнать, когда модель меняется с провайдером? - PullRequest
0 голосов
/ 12 апреля 2020

Учитывая ниже класс. Можно ли слушать, когда appStateModel.bar меняется? У меня есть сценарий, в котором я хочу выполнять анимацию каждый раз, когда изменяется определенное значение, но я не могу понять, как этого добиться.

class Foo extends StatelessWidget {
  const Foo();

  @override
  Widget build(BuildContext context) {
    var appStateModel = Provider.of<AppStateModel>(context);
    return Container(
      child: Text('${appStateModel.bar}'),
    );
  }
}

1 Ответ

0 голосов
/ 12 апреля 2020

В уведомлении об изменении вы должны указать notifyListeners(), как указано. С этим все должно работать.

С другой стороны, вы можете использовать метод сборки, чтобы воздействовать на события изменения, потому что виджет будет перестраиваться при каждом вызове notifyListeners() (по крайней мере, на мой взгляд).

Если это не сработает, есть Consumer Widget, он использует уведомитель и перестраивает только при вызове notifyListeners(). Этот виджет также предоставляет дочерний параметр, с помощью которого вы можете сохранить производительность при его использовании, поскольку ему не нужно перестраивать при изменении уведомителя.

Надеюсь, это решит вашу проблему.

...