当我将TextEditingController添加到TextFormField时,与之交互后,文本字段的值将被重置/删除。
在代码示例中,我删除了不必要的小部件(针对较短的问题):
Widget build(BuildContext context) {
final usernameTextEditController = TextEditingController();
final passwordTextEditController = TextEditingController();
final confirmPasswordTextEditController = TextEditingController();
//...
TextFormField(
validator: InputValidator.inputUsernameValidate,
controller: usernameTextEditController,
decoration: InputDecoration(
labelText: 'Your user name.',
),
),
TextFormField(
controller: passwordTextEditController,
validator: InputValidator.inputPasswordValidate,
decoration: InputDecoration(
labelText: 'Your password',
),
obscureText: true,
),
TextFormField(
controller: confirmPasswordTextEditController,
validator: InputValidator.inputPasswordValidate,
decoration: InputDecoration(
labelText: 'Confirm Password',
),
obscureText: true,
),
//...
}
答案 0 :(得分:2)
您的变量在build()函数中,该变量经常被调用,因此您的变量一次又一次地初始化(=“重置”)
将它们移至build()-函数所在的类中,应解决该问题。
有关build()以及调用它的原因和时间的详细信息,请参阅文档。 build method