значения не остаются в поле текстовой формы, когда я нажимаю «Продолжить», когда я возвращаюсь на страницу, значение пустое Обратите внимание, что я использовал просмотр страницы

#flutter #dart

Вопрос:

Я пытаюсь создать страницы регистрации, поэтому я использовал просмотр страниц, как этот контроллер просмотра страниц.контроллер просмотра страниц следующей страницы (….,…). предыдущая страница (….,…) Значение Бум в поле Текстовой формы исчезло. И это происходит на всех страницах, когда я перехожу на новую страницу в представлении страницы и возвращаюсь на страницу. Информация, которую заполнил пользователь, исчезла из полей и стала пустой! почему?

 Form(  key: EmailKeys.formKey,  child: Column(  children: [  const Text(  "Create an account, It's free",  textAlign: TextAlign.center,  style: TextStyle(fontSize: 16, color: Colors.grey),  ),  const SizedBox(  height: 40,  ),  TextFormField(  onFieldSubmitted: (val) {  EmailKeys.formKey.currentState!.setState(() {  email = val.trim();  });  EmailKeys.formKey.currentState!.save();  },  textInputAction: TextInputAction.done,  inputFormatters: [LengthLimitingTextInputFormatter(100)],  obscureText: false,  keyboardType: TextInputType.emailAddress,  decoration: InputDecoration(  labelText: "Email Address",  border: OutlineInputBorder(  borderRadius: BorderRadius.circular(15),  ),  labelStyle: TextStyle(color: Colors.grey[400]),  floatingLabelStyle:  const TextStyle(color: Colors.blueGrey, fontSize: 18),  ),  validator: (value) {  if (value!.isEmpty) {  return 'Email address is required';  } else if (!value.contains("@")) {  return "Email address should contain ' @ ' symbol";  }  },  onChanged: (value) {  email = value.trimLeft();  },  onSaved: (val) {  setState(() {  email = val!;  });  print(email);  },  controller: _emailCtrl,  ),  ],  ),  ),  

Комментарии:

1. вам необходимо хранить данные локально, иначе при возврате с другой страницы данные будут удалены. И вы также можете попробовать использовать государственное управление, такое как bloc, GlobalState и т. Д.

Ответ №1:

попробуйте передать email поле Textform в качестве значения