繁体   English   中英

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

[英]Autovalidate of TextFormField is deprecated in Flutter

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

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();
      },
    );
  }
}

迁移后的代码:

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

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

autovalidate替换为autovalidateMode

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

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

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

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

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

autovalidate 已被贬值,现在您需要使用 autovalidateMode: AutovalidateMode.always 通过以下方式检查颤振文档: https ://docs.flutter.dev/release/break-changes/form-field-autovalidation-api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM