#android #ios #flutter #dart #mobile
Вопрос:
Мне нужно обновить значения экрана. Когда я нажал кнопку, она должна установить значения экрана. Это работает, но когда я пытаюсь изменить одно поле и перейти к следующему полю, первое значение возвращается к первому значению. Вот моя кодовая часть:
class _AccountScreenState extends Statelt;AccountScreengt; { final api = ApiServices(); var formKey = GlobalKeylt;FormStategt;(); var emailController = TextEditingController(); var pwdController = TextEditingController(); var phoneController = TextEditingController(); @override Widget build(BuildContext context) { emailController.text = widget.account.email!; phoneController.text = widget.account.phoneNumber!; ... child: TextFormField(controller: emailController, decoration: InputDecoration(prefixText: "Email: ", prefixStyle: TextStyle(fontWeight: FontWeight.w600), labelText: "E-mail", border: OutlineInputBorder(borderSide: BorderSide.none), fillColor: Colors.white, filled: true), ), ...
Ответ №1:
Вы можете удалить свой код из метода сборки, потому что при использовании метода setstate все методы сборки перестраиваются. таким образом, вы можете просто поместить свой код в метод initstate.
также вы можете использовать ключевое слово late.
late TextEditingController emailController; @override void initState() { emailController = TextEditingController(text: widget.account.email!); // TODO: implement initState super.initState(); }
Комментарии:
1. Спасибо вам за ваш ответ. Ты самый лучший 🙂