Flutter中TextFormField的自动验证已被弃用。

12

'autovalidate'已被弃用,不应再使用。请使用autoValidateMode参数,该参数提供了更具体的自动验证相关行为。此功能在v1.19.0之后被弃用。 尝试使用替代方法替换已弃用的成员。 在这里输入图片描述


你能具体说明你遇到了什么问题吗? - sameer kashyap
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();
      },
    );
  }
}

15

autovalidate已从Flutter v1.19弃用。

请使用autovalidateMode替换autovalidate

autovalidateMode可取以下三个值之一:

  1. autovalidateMode: AutovalidateMode.disabled: 不会进行自动验证。

  2. autovalidateMode: AutovalidateMode.always: 即使没有用户交互也会对FormField进行自动验证。

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

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


有人使用过 Autovalidate.disabled 吗?它对我不起作用。 - bounxye

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接