Flutter 中已弃用 TextFormField 的自动验证

问题描述 投票:0回答:3

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

forms flutter dart
3个回答
27
投票

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

更多关于 autovalidateMode


15
投票

autovalidate 从 Flutter v1.19 开始已弃用

autovalidate 替换为 autovalidateMode

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

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

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

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

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


0
投票

autovalidate已被弃用,现在需要使用autovalidateMode:AutovalidateMode.always 通过以下方式查看 flutter 文档: https://docs.flutter.dev/release/writing-changes/form-field-autovalidation-api

© www.soinside.com 2019 - 2024. All rights reserved.