Flutter: TextEditingController - как правильно следить за изменениями входного значения? - PullRequest
0 голосов
/ 01 мая 2020

Моим первым подходом было использование addListener, как описано здесь . Я обнаружил одну странную и серьезную проблему этого подхода: Flutter вызывает слушателей, теряя фокус. Это приводит к бесполезным вычислениям слушателей. Я прав? Как получить уведомление только при изменении значения ?

Ответы [ 2 ]

1 голос
/ 01 мая 2020

TextField виджет имеет метод обратного вызова onChange, который можно использовать для получения значения при изменении значения. Зачем вам использовать контроллер для этого изменения?

0 голосов
/ 01 мая 2020

Использование TextEditingController.addListener - не лучший вариант для обнаружения изменений входного значения, поскольку оно срабатывает при других действиях:

  • фокус теряется
  • изменения положения фокуса

Внимательно изучите пример на этой странице , измените фокус полей, проверьте вывод консоли и изучите разницу.

Похоже, у вас есть два варианта:

  • Использовать метод TextField.onChange для обнаружения изменений
  • или сравнения TextField.text значений текущего и предыдущего TextEditingController.addListener звонки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...