新的 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。 檢視原始碼 或 回報問題。