gpt4 book ai didi

dart - TextField 在与 TextEditingController 交互后失去值(value)

转载 作者:IT王子 更新时间:2023-10-29 06:51:27 25 4
gpt4 key购买 nike

当我将 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,
),


//...
}

TextField loses value

最佳答案

你的变量在 build() 函数中,这个函数被频繁调用,所以你的变量被一次又一次地初始化(=“重置”)

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

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

关于dart - TextField 在与 TextEditingController 交互后失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53445517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com