Flutter перезапускает состояние TextField, когда отображается клавиатура, а затем исчезает

Итак, я работаю над TextField с scoped_model. Я переместил контроллер в класс Model и пытаюсь изменить состояние Text с помощью текста, который пользователь вводит в указанное TextField. Но когда я закрываю клавиатуру, состояние меняется, и поле TextField становится пустым, поэтому в виджете Text тоже ничего не видно. Это мой код:

CupertinoTextField(
  controller: model.lastNameController,
  onChanged: (text) => model.changeShortLastNameState(lastName: text),
),

И это соответствующий код моей модели

final lastNameController = TextEditingController();

void changeShortLastNameState({String lastName}) {
  var splitLastName = lastName.split(' ');
  var shortLastName = splitLastName[0];
  this.shortLastName = shortLastName;
  notifyListeners();
}

Я нашел кого-то на flutter github с той же проблемой, но они отправили его в SO , и мне не удалось найти вопрос от того же парня. Кто-нибудь знает, как решить эту проблему? Спасибо.


person herrmartell    schedule 30.04.2019    source источник
comment
Используйте поток в своей модели для обновления виджетов всякий раз, когда происходит «onChanged».   -  person Rubens Melo    schedule 01.05.2019
comment
Я новичок во Flutter. Вы случайно не знаете пример с scope_model и Streams?   -  person herrmartell    schedule 01.05.2019


Ответы (1)


Используйте замедление контроллера редактирования текста вне функции сборки.

person Priyanka Dadhich    schedule 25.12.2019