Features
- Multiple Layouts: ProForm, ModalForm, DrawerForm, StepsForm, QueryFilter, LightFilter
- Rich Field Types: 30+ field components with automatic rendering based on
valueType - Form Schemas: Define forms using schema configuration
- Async Operations: Built-in loading states and request handling
- Form Composition: Group, FieldSet, Dependency, FormList support
- Validation: Integration with Ant Design Form validation
Form Layouts
- ProForm
- ModalForm
- DrawerForm
- StepsForm
Standard form layout with automatic layout management:
Form Fields
ProForm provides field components for all common data types:Text Input Fields
Selection Fields
Date & Time Fields
Advanced Fields
Form Groups & Layouts
ProForm.Group
Group multiple fields in a row:ProFormFieldSet
Bundle multiple fields as a single form item:ProFormList
Dynamic form list for arrays:ProFormDependency
Fields dependent on other field values:QueryFilter
Compact search form for tables:LightFilter
Inline lightweight filter:Form Submission
Basic Submission
Custom Submitter
Submitter Configuration
Form Validation
Key Props
| Prop | Type | Description |
|---|---|---|
onFinish | (values) => Promise<boolean | void> | Form submit handler |
initialValues | Record<string, any> | Initial form values |
request | () => Promise<Record<string, any>> | Async load initial values |
submitter | false | SubmitterProps | Submit button config |
layout | 'horizontal' | 'vertical' | 'inline' | Form layout |
grid | boolean | Enable grid layout |
dateFormatter | 'string' | 'number' | false | Date value formatter |
formRef | React.MutableRefObject<ProFormInstance> | Form instance ref |
Form Instance Methods
Best Practices
Use transform for data conversion
Use transform for data conversion
Convert form values to API format using the
transform prop:Set field width consistently
Set field width consistently
Use width props for consistent field sizing:
Group related fields
Group related fields
Handle async validation carefully
Handle async validation carefully
Debounce async validators to prevent excessive API calls:
Related Components
- ProTable - Use QueryFilter with ProTable
- ProDescriptions - Detail display
- ProCard - Form container