Dart 与TextEditingController交互后,TextField失去值

Dart 与TextEditingController交互后,TextField失去值,dart,flutter,Dart,Flutter,当我将TextEditingController添加到TextFormField时,文本字段的值在与之交互后重置/删除 在代码示例中,我删除了不必要的小部件(对于较短的问题): 您的变量在build()函数中,这个函数会被频繁调用,因此您的变量会一次又一次地初始化(“reset”) 将它们移动到build()函数所在的类中,应该可以解决该问题 有关build()及其调用原因和时间的详细信息,请参阅文档 您的变量在build()函数中,这个函数会被频繁调用,因此您的变量会一次又一次地初始化(=“r

当我将TextEditingController添加到TextFormField时,文本字段的值在与之交互后重置/删除

在代码示例中,我删除了不必要的小部件(对于较短的问题):


您的变量在build()函数中,这个函数会被频繁调用,因此您的变量会一次又一次地初始化(“reset”)

将它们移动到build()函数所在的类中,应该可以解决该问题


有关build()及其调用原因和时间的详细信息,请参阅文档

您的变量在build()函数中,这个函数会被频繁调用,因此您的变量会一次又一次地初始化(=“reset”)

将它们移动到build()函数所在的类中,应该可以解决该问题


有关build()及其调用原因和时间的详细信息,请参阅文档

移动此代码
final usernameTextEditController=TextEditingController()超出
build()
。每次颤振更新视图时,将创建一个具有默认值的新控制器。移动此代码
final usernameTextEditController=TextEditingController()超出
build()
。每次颤振更新视图时,将创建一个具有默认值的新控制器。
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,
                ),


//...
  }