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