首页 > 解决方案 > 如何使用 `form.validate()` 调用特定的验证器而不是同时调用所有的验证器?

问题描述

这是代码:

if (form.validate()) {
          // Text forms was validated.
          if (mounted) {
            setState(() {
              _isButtonEnabled = true;
            });
          }
          form.save();
        }

我想为特定的 TextFormField 调用特定的验证器

标签: flutterdartflutter-form-builder

解决方案


Joao 的回答是正确的,但它也被过度设计了。您可以改为GlobalKey为要独立验证的每个字段声明 a:

GlobalKey<FormFieldState> fieldKey = GlobalKey();

将其分配给TextFormField您要验证的:

TextFormField(
    key: fieldKey,
    ...

然后使用密钥验证该字段:

bool valid = fieldKey.currentState.validate();

推荐阅读