5个TextFormField验证程序中只有2个有效

时间:2018-11-21 13:16:10

标签: dart flutter

我有5个需要验证的TextFormField,但是,只有前2个成功验证了。也就是说,仅针对前两个TextFormFields显示红色错误消息。如果我将无效的验证器密钥与有效的验证器中的密钥之一交换,则所有功能均正常运行(因此,该问题似乎与我设置的“规则”无关)。另外,如果我删除onPressed函数中的前2个'* currentState.validate()'条目,则后2个将正常工作。该应用程序识别出字段无效,因为onPressed函数除了验证字段外没有做任何其他事情。此外,如果第一对条目已成功验证,则以下条目上仍不会显示红色字母。没有错误消息是可见的。

任何帮助将不胜感激。

相关代码如下:

... data: {title: TitleResolver, ...

1 个答案:

答案 0 :(得分:1)

密钥非常昂贵,理想情况下,每个表格只需要使用一个密钥。您正在为每个文本字段使用一个过大的键。我想象引擎看到有两种无效的表格,因此不会处理其余的表格。理想情况下,您希望拥有一个带有单个键的表单以及其中的所有InputField,例如:

  final _formKey = GlobalKey<FormState>();

  TextFormField field1 = new TextFormField();
  TextFormField field2 = new TextFormField();  
  TextFormField field3 = new TextFormField();  
  TextFormField field4 = new TextFormField();    


  @override
  Widget build(BuildContext context) {
    return Form(
        key: _formKey,
        child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              field1,
              field2,
              field3,
              field4
              ])
        );
  }