diff --git a/src/components/form/demos/demo-array.tsx b/src/components/form/demos/demo-array.tsx
index 2d897bda8e..56051007a5 100644
--- a/src/components/form/demos/demo-array.tsx
+++ b/src/components/form/demos/demo-array.tsx
@@ -27,6 +27,7 @@ export default () => {
operation.add({ name: '张三' })}
renderAdd={() => (
添加
diff --git a/src/components/form/form-array.tsx b/src/components/form/form-array.tsx
index 4b248f054f..1f84b1eb7e 100644
--- a/src/components/form/form-array.tsx
+++ b/src/components/form/form-array.tsx
@@ -22,6 +22,7 @@ export interface FormArrayProps {
field: FormArrayField,
operation: FormArrayOperation
) => ReactNode
+ onAdd?: (operation: FormArrayOperation) => void
renderAdd?: () => ReactNode
children: (
fields: FormArrayField[],
@@ -54,7 +55,7 @@ export const FormArray: React.FC = props => {
{
- operation.add()
+ props.onAdd ? props.onAdd(operation) : operation.add()
}}
arrow={false}
>
diff --git a/src/components/form/index.en.md b/src/components/form/index.en.md
index b1dd7f9905..3ef9af555c 100644
--- a/src/components/form/index.en.md
+++ b/src/components/form/index.en.md
@@ -238,6 +238,7 @@ Provides array management for fields.
| children | Render function. | `(fields: FormArrayField[], operation: FormArrayOperation) => ReactElement[]` | - |
| renderHeader | Render the header of each field. | `(field: FormArrayField, operation: FormArrayOperation) => ReactNode` | - |
| renderAdd | Render the content of add button. | `() => ReactNode` | - |
+| onAdd | Custom add function. | `(operation: FormArrayOperation) => void` | - |
| initialValue | Config sub default value. Form `initialValues` get higher priority when conflict. | `any[]` | - |
### FormArrayField
diff --git a/src/components/form/index.zh.md b/src/components/form/index.zh.md
index e7c10823c8..788b1cf2d7 100644
--- a/src/components/form/index.zh.md
+++ b/src/components/form/index.zh.md
@@ -238,6 +238,7 @@ Form 通过增量更新方式,只更新被修改的字段相关组件以达到
| children | 渲染函数 | `(fields: FormArrayField[], operation: FormArrayOperation) => ReactElement[]` | - |
| renderHeader | 渲染每一项的头部内容 | `(field: FormArrayField, operation: FormArrayOperation) => ReactNode` | - |
| renderAdd | 渲染添加按钮的文案 | `() => ReactNode` | - |
+| onAdd | 自定义添加方法 | `(operation: FormArrayOperation) => void` | - |
| initialValue | 设置子元素默认值,如果与 Form 的 `initialValues` 冲突则以 Form 为准 | `any[]` | - |
### FormArrayField