新的 Form、FormField 自动验证 API
摘要
#之前 Form
和 FormField
组件的自动验证 API 无法控制自动验证何时发生。因此,这些组件的自动验证总是在第一次构建时(即组件首次对用户可见时)发生,并且您无法控制自动验证何时发生。
上下文
#由于原始 API 不允许开发者更改自动验证行为(例如仅在用户与表单字段交互时进行验证),我们添加了新的 API,允许开发者配置他们希望 Form
和 FormField
组件的自动验证如何工作。
变更描述
#进行了以下更改
autovalidate
参数已弃用。- 添加了一个名为
autovalidateMode
的新参数,这是一个枚举,接受来自AutovalidateMode
枚举类的值。
迁移指南
#要迁移到新的自动验证 API,您需要将弃用的 autovalidate
参数替换为新的 autovalidateMode
参数。如果您希望保持与之前相同的行为,可以使用:autovalidateMode = AutovalidateMode.always
。这将使您的 Form
和 FormField
组件在第一次构建时以及每次发生更改时都进行自动验证。
迁移前的代码
dart
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FormField(
autovalidate: true,
builder: (FormFieldState state) {
return Container();
},
);
}
}
迁移后的代码
dart
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FormField(
autovalidateMode: AutovalidateMode.always,
builder: (FormFieldState state) {
return Container();
},
);
}
}
时间线
#包含于版本:1.21.0-5.0.pre
稳定版发布:1.22
参考
#API 文档
相关问题
相关 PR
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新时间:2024-04-04。 查看源代码 或 报告问题.