表单 Form

高性能、易扩展的表单解决方案,支持数据录入、校验和提交功能。

何时使用

  • 需要进行数据录入和校验的场景
  • 构建登录、注册、设置等表单页面
  • 需要复杂表单交互和状态管理的应用

示例

基础表单

最简单的表单使用方式,包含基本的字段和提交功能。

正在加载组件...
code

表单布局

支持三种不同的表单布局:垂直(默认)、水平和内联。

正在加载组件...
code

浮动标签

使用浮动标签模式,节省空间并提升用户体验。

正在加载组件...
code

表单验证

支持多种验证规则,包括必填、长度、正则表达式、邮箱、URL等。

正在加载组件...
code

使用 useForm Hook

通过 useForm Hook 获取表单实例,实现更复杂的表单操作。

正在加载组件...
code

初始值

为表单设置初始值,并监听值的变化。

正在加载组件...
code

API

Form

参数说明类型默认值
form表单实例FormInstance-
initialValues初始值Partial<T>-
layout表单布局'horizontal' | 'vertical' | 'inline''vertical'
floatingLabel是否使用浮动标签booleanfalse
labelWidth标签宽度(horizontal 布局时有效)number | string-
labelAlign标签对齐方式'left' | 'right''right'
disabled是否禁用整个表单booleanfalse
onFinish表单提交回调(values: T) => void-
onFinishFailed表单提交失败回调(errors: Record<string, string>) => void-
onValuesChange字段值改变回调(changedValues: Partial<T>, allValues: T) => void-
children子元素ReactNode-

FormItem

参数说明类型默认值
name字段名string-
label标签文本ReactNode-
required是否必填(显示红色星号)booleanfalse
rules验证规则ValidationRule[][]
floatingLabel是否使用浮动标签(覆盖 Form 级别设置)boolean-
help帮助文本ReactNode-
extra额外提示ReactNode-
noLabel是否隐藏标签booleanfalse
className自定义类名string-
children子元素ReactNode-
labelWidth标签宽度(覆盖 Form 级别设置)number | string-
valuePropName值属性名string'value'
trigger触发方式string'onChange'
validateTrigger值收集触发方式string | string[]'onBlur'

useForm

获取表单实例的 Hook。

const [form] = useForm();

:::

FormInstance

方法说明类型
getFieldValue获取字段值(name: keyof T) => unknown
getFieldsValue获取所有字段值() => T
setFieldValue设置字段值(name: keyof T, value: unknown) => void
setFieldsValue设置多个字段值(values: Partial<T>) => void
resetFields重置字段() => void
validateFields验证所有字段() => Promise<T>
validateField验证单个字段(name: keyof T) => Promise<unknown>
getFieldError获取字段错误(name: keyof T) => string | undefined
getFieldsError获取所有字段错误() => Record<keyof T, string | undefined>
isFieldTouched字段是否被触摸过(name: keyof T) => boolean
isFieldValidating字段是否正在验证(name: keyof T) => boolean
submit提交表单() => void

ValidationRule

参数说明类型
required是否必填boolean
message错误信息string
min最小长度number
max最大长度number
pattern正则表达式RegExp
validator自定义验证器(value: unknown) => Promise<void> | void
type类型验证'string' | 'number' | 'email' | 'url'