簡體   English   中英

Flutter 中不推薦使用 TextFormField 的自動驗證

[英]Autovalidate of TextFormField is deprecated in Flutter

'autovalidate' 已棄用,不應使用。 使用 autoValidateMode 參數,該參數提供與自動驗證相關的更具體的行為。 此功能在 v1.19.0 之后已棄用。。嘗試將已棄用成員的使用替換為替換。 在此處輸入圖像描述

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

自動驗證已從 Flutter v1.19 棄用

autovalidate替換為autovalidateMode

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

  1. autovalidateMode: AutovalidateMode.disabled :不會發生自動驗證。

  2. autovalidateMode: AutovalidateMode.always : 即使沒有用戶交互,也用於自動驗證 FormField。

  3. autovalidateMode: AutovalidateMode.onUserInteraction : 用於僅在每次用戶交互后自動驗證 FormField。

我建議一一嘗試上述所有值,並使用滿足您要求的值。

autovalidate 已被貶值,現在您需要使用 autovalidateMode: AutovalidateMode.always 通過以下方式檢查顫振文檔: https ://docs.flutter.dev/release/break-changes/form-field-autovalidation-api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM