Flutter 的新的 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