Form
表单需要统一管理字段值、校验和提交时使用 blackwork/form;如果状态已经由应用管理,只需要标签和说明时使用 Field。
blackwork/form 将 TanStack Form 的状态管理与 Blackwork 字段组件结合起来。TanStack Form 负责字段值、校验和提交,Blackwork 提供字段样式和常用控件的绑定。
使用前先安装所需的 TanStack Form 依赖:
Bash
pnpm add @tanstack/react-form适用场景
- 需要管理字段值、校验和提交的表单
- 复用
TextField、TextareaField、CheckboxField
只需要为输入控件添加标签和说明时,使用 Field。
用法
用法
示例
内置字段
内置字段
自定义字段
Select、Combobox 等控件需要手动绑定字段状态。可以参考下面的输入框示例,在 form.AppField 中组合 Field 与控件。
自定义字段
API 参考
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
form必填 | { handleSubmit: () => unknown } | — | 传给 Form 的表单实例,由 useAppForm 返回。 |
label必填 | ReactNode | — | TextField、TextareaField 和 CheckboxField 的可见标签。 |
description | ReactNode | — | 显示在控件下方的帮助文字。 |
说明
Form在提交时调用form.handleSubmit()。SubmitButton根据isSubmitting设置Button的loading状态。- 单字段规则放在对应字段附近;需要同时比较多个值的规则再放到表单级校验。
注意
useAppForm 必须在客户端组件里调用。