FormField

单个表单字段,可以将字段当前的状态(如更新/验证错误)在用户界面中直观地反映出来

Form中使用FormState的方法可以查询或整体操作表单数据。例如调用FormState.save会依次触发每个FormFieldonSaved回调。

如果想获取FormField的当前状态(例如让一个字段依赖另一个字段),可以给FormField使用GlobalKey

Form允许一次性保存、重置或验证多个字段,如果不使用Form,可以将GlobalKey传递给构造函数,并通过GlobalKey.currentState保存或重置该表单字段。

构造函数

FormField.new({
  Key? key, 
  required FormFieldBuilder<T> builder, 
  FormFieldSetter<T>? onSaved, 
  VoidCallback? onReset, 
  String? forceErrorText, 
  FormFieldValidator<T>? validator, 
  FormFieldErrorBuilder? errorBuilder, 
  T? initialValue, 
  bool enabled = true, 
  AutovalidateMode? autovalidateMode, 
  String? restorationId
})

属性

属性名属性类型说明
autovalidateModeAutovalidateMode用于启用/禁用FormField的自动校验,并更新错误信息
enabledbool表明这个FormField是否接收用户输入
errorBuilderFormFieldErrorBuilder?用于组件校验错误信息展示的函数
forceErrorTextString?一个可选的属性,设置FormFieldState.errorText属性会强制FormFieldState在没有运行校验函数的情况下,直接进入错误状态
initialValueT?一个可选的值,用于初始化表单字段,否则为null
onResetVoidCallback?当表单字段被重置时,调用该回调函数
onSavedFormFieldSetter<T>?当表单字段保存时,调用该回调函数
restorationIdString?用于保存和恢复表单字段状态的Id
validatorFormFieldValidator<T>?一个可选的方法,用于验证输入。如果输入无效,则返回要显示的错误字符串,否则返回null