gpt4 book ai didi

flutter - 如何重置 TextFormField 中的错误消息?

转载 作者:行者123 更新时间:2023-12-03 02:40:50 26 4
gpt4 key购买 nike

我知道这是一个简单的问题,但我没有找到如何做到这一点。当用户在字段中输入内容时,如何重置 TextFormField 中的错误消息。像 onchange 监听器这样的东西。我注意到 onChanged 在 TextField 中可用,但在 TextFormField 中不可用。我怎样才能做到这一点?

final _email = Container(
child: TextFormField(
decoration: InputDecoration(labelText: email),
keyboardType: TextInputType.emailAddress,
controller: emailController,
validator: _validateEmail,
onSaved: (input) => _stringEmail = input.toLowerCase().trim(),
),
);

更新:我正在使用 Controller 为用户输入添加监听器。但我只想重置错误消息而不是再次验证表单。这可能吗?我怎样才能做到这一点?
  _resetEmailErrorMessage() {
print("Second text field: ${emailController.text}");
//replace clear to something that can reset the validation error message
emailController.clear();
}

@override
void initState() {
super.initState();

//start listening to changes
emailController.addListener(_resetEmailErrorMessage);
}

最佳答案

您可以使用 Form 的自动验证功能
如果您正在寻找此解决方案,

"As soon as you type it validates your input and show/hide error"


Flutter 提供了自动验证功能,你只需要在表单级别启用它。
  • 默认_autoValidate = false;
  • 形式

  •     body: Form( key: _formKey,
    autovalidate: _autoValidate,....)
  • 当用户按下提交一次时启用它,

  •     if (_formKey.currentState.validate()) {
    // All Good
    } else {
    // start auto validate
    setState(() {
    _autoValidate = true;
    });
    }
    更新:-
    现在 Form.autovalidate已弃用。所以使用
    Form.autovalidateMode = AutovalidateMode.onUserInteraction 

    关于flutter - 如何重置 TextFormField 中的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574390/

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