在 Flutter 中不推荐使用 TextFormField 的自动验证

Arn*_*rya 5 forms dart flutter

'autovalidate' 已弃用,不应使用。使用 autoValidateMode 参数提供与自动验证相关的更具体的行为。此功能在 v1.19.0 之后被弃用。. 尝试用替换来替换弃用成员的使用。 在此处输入图片说明

Dar*_*ish 15

autovalidate 被 autovalidateMode 取代

自动验证已弃用并由枚举代替。所以你应该迁移到新版本。

您需要做的就是将autovalidate: true替换为 autovalidateMode: AutovalidateMode.always

支持的不同模式是

  1. AutovalidateMode.always
  2. AutovalidateMode.disabled
  3. AutovalidateMode.onUserInteraction

例子:

迁移前的代码:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FormField(
      autovalidate: true,
      builder: (FormFieldState state) {
        return Container();
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

迁移后的代码:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FormField(
      autovalidateMode: AutovalidateMode.always,
      builder: (FormFieldState state) {
        return Container();
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)


Dha*_*kar 9

自动验证已从 Flutter v1.19 弃用

autovalidate替换为autovalidateMode

autovalidateMode可以具有以下 3 个值之一:

  1. autovalidateMode: AutovalidateMode.disabled:不会发生自动验证。

  2. autovalidateMode: AutovalidateMode.always : 即使没有用户交互,也用于自动验证 FormField。

  3. autovalidateMode: AutovalidateMode.onUserInteraction : 用于仅在每次用户交互后自动验证 FormField。

我建议一一尝试上述所有值,并使用满足您要求的值。