diff --git a/components/form/index.en-US.md b/components/form/index.en-US.md index 2f87a802aa..683a12dd37 100644 --- a/components/form/index.en-US.md +++ b/components/form/index.en-US.md @@ -203,9 +203,9 @@ Some operator functions in render form of Form.List. New in 4.7.0. Show error messages, should only work with `rules` of Form.List. See [example](#components-form-demo-dynamic-form-item). -| Property | Description | Type | Default | -| --- | --- | --- | --- | -| errors | Error list | ReactNode\[] | - | +| Property | Description | Type | Default | +| -------- | ----------- | ------------ | ------- | +| errors | Error list | ReactNode\[] | - | ## Form.Provider @@ -286,13 +286,13 @@ validateFields() #### FieldData -| Name | Description | Type | -| --- | --- | --- | -| errors | Error messages | string\[] | -| name | Field name path | [NamePath](#NamePath)\[] | -| touched | Whether is operated | boolean | -| validating | Whether is in validating | boolean | -| value | Field value | any | +| Name | Description | Type | +| ---------- | ------------------------ | ------------------------ | +| errors | Error messages | string\[] | +| name | Field name path | [NamePath](#NamePath)\[] | +| touched | Whether is operated | boolean | +| validating | Whether is in validating | boolean | +| value | Field value | any | #### Rule @@ -435,3 +435,7 @@ React can not get correct interaction of controlled component with async value u See similar issues: [#28370](https://github.com/ant-design/ant-design/issues/28370) [#27994](https://github.com/ant-design/ant-design/issues/27994) `scrollToFirstError` and `scrollToField` deps on `id` attribute passed to form control, please mark sure that it hasn't been ignored in your custom form control. Check [codesandbox](https://codesandbox.io/s/antd-reproduction-template-forked-25nul?file=/index.js) for solution. + +### `setFieldsValue` do not trigger `onFieldsChange` or `onValuesChange`? + +It's by design. Only user interactive can trigger the change event. This design is aim to avoid call `setFieldsValue` in change event which may makes loop calling. diff --git a/components/form/index.zh-CN.md b/components/form/index.zh-CN.md index a647617ea9..abfc0b9840 100644 --- a/components/form/index.zh-CN.md +++ b/components/form/index.zh-CN.md @@ -192,19 +192,19 @@ Form 通过增量更新方式,只更新被修改的字段相关组件以达到 Form.List 渲染表单相关操作函数。 -| 参数 | 说明 | 类型 | 默认值 | -| --- | --- | --- | --- | -| add | 新增表单项 | (defaultValue?: any, insertIndex?: number) => void | insertIndex: 4.6.0 | -| move | 移动表单项 | (from: number, to: number) => void | - | -| remove | 删除表单项 | (index: number \| number\[]) => void | number\[]: 4.5.0 | +| 参数 | 说明 | 类型 | 默认值 | +| ------ | ---------- | -------------------------------------------------- | ------------------ | +| add | 新增表单项 | (defaultValue?: any, insertIndex?: number) => void | insertIndex: 4.6.0 | +| move | 移动表单项 | (from: number, to: number) => void | - | +| remove | 删除表单项 | (index: number \| number\[]) => void | number\[]: 4.5.0 | ## Form.ErrorList 4.7.0 新增。错误展示组件,仅限配合 Form.List 的 rules 一同使用。参考[示例](#components-form-demo-dynamic-form-item)。 -| 参数 | 说明 | 类型 | 默认值 | -| --- | --- | --- | --- | -| errors | 错误列表 | ReactNode\[] | - | +| 参数 | 说明 | 类型 | 默认值 | +| ------ | -------- | ------------ | ------ | +| errors | 错误列表 | ReactNode\[] | - | ## Form.Provider @@ -285,13 +285,13 @@ validateFields() #### FieldData -| 名称 | 说明 | 类型 | -| --- | --- | --- | -| errors | 错误信息 | string\[] | -| name | 字段名称 | [NamePath](#NamePath)\[] | -| touched | 是否被用户操作过 | boolean | -| validating | 是否正在校验 | boolean | -| value | 字段对应值 | any | +| 名称 | 说明 | 类型 | +| ---------- | ---------------- | ------------------------ | +| errors | 错误信息 | string\[] | +| name | 字段名称 | [NamePath](#NamePath)\[] | +| touched | 是否被用户操作过 | boolean | +| validating | 是否正在校验 | boolean | +| value | 字段对应值 | any | #### Rule @@ -434,3 +434,7 @@ React 中异步更新会导致受控组件交互行为异常。当用户交互 类似问题:[#28370](https://github.com/ant-design/ant-design/issues/28370) [#27994](https://github.com/ant-design/ant-design/issues/27994) 滚动依赖于表单控件元素上绑定的 `id` 字段,如果自定义控件没有将 `id` 赋到正确的元素上,这个功能将失效。你可以参考这个 [codesandbox](https://codesandbox.io/s/antd-reproduction-template-forked-25nul?file=/index.js)。 + +### `setFieldsValue` 不会触发 `onFieldsChange` 和 `onValuesChange`? + +是的,change 事件仅当用户交互才会触发。该设计是为了防止在 change 事件中调用 `setFieldsValue` 导致的循环问题。