@agentscope-ai/design 1.0.26-beta.1767843408082 → 1.0.26-beta.1768271896414

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/llms/all.llms.txt CHANGED
@@ -1,5 +1,65 @@
1
1
 
2
2
 
3
+ <DemoTitle title="Video" desc="视频展示">
4
+ #### API
5
+
6
+ | 属性名 | 描述 | 类型 | 默认值 |
7
+ |--------|--------|--------|--------|
8
+ | mouseEnterAutoPlay | 鼠标进入时是否自动播放 | boolean | false |
9
+ | children | video内部设置了按钮在暗色背景下的样式,如果有一些操作按钮想继承这个样式可以在这里传入 | React.ReactNode | |
10
+
11
+
12
+
13
+
14
+
15
+
16
+ <DemoTitle title="Tooltip" desc="简单的文本提示气泡框">
17
+ #### API
18
+
19
+ | 属性名 | 描述 | 类型 | 默认值 |
20
+ |--------|--------|--------|--------|
21
+ | mode | 颜色模式 | 'dark' \| 'light' | 'dark' |
22
+ | maxHeight | 最大高度 | number \| string | '90vh' |
23
+
24
+
25
+ <AntdApiRef url="https://ant.design/components/tooltip-cn/#api"></AntdApiRef>
26
+
27
+
28
+ ## antd API
29
+
30
+ 通用属性参考:[通用属性](/docs/react/common-props)
31
+
32
+ | 参数 | 说明 | 类型 | 默认值 |
33
+ |--------|--------|--------|--------|
34
+ | title | 提示文字 | ReactNode \| () => ReactNode | - |
35
+
36
+
37
+ ### 共同的 API
38
+
39
+ 以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
40
+
41
+ <!-- prettier-ignore -->
42
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
43
+ |--------|--------|--------|--------|--------|
44
+ | align | 该值将合并到 placement 的配置中,设置参考 | object | - | |
45
+ | arrow | 修改箭头的显示状态以及修改箭头是否指向目标元素中心 | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
46
+ | autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true | |
47
+ | color | 背景颜色 | string | - | 4.3.0 |
48
+ | defaultOpen | 默认是否显隐 | boolean | false | 4.23.0 |
49
+ | destroyOnHidden | 关闭后是否销毁 dom | boolean | false | 5.25.0 |
50
+ | fresh | 默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新 | boolean | false | 5.10.0 |
51
+ | getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
52
+ | mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0.1 | |
53
+ | mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 | |
54
+ | placement | 气泡框位置,可选 | string | top | |
55
+ | trigger | 触发行为,可选 | string \| string[] | hover | |
56
+ | open | 用于手动控制浮层显隐,小于 4.23.0 使用 | boolean | false | 4.23.0 |
57
+ | zIndex | 设置 Tooltip 的 | number | - | |
58
+ | onOpenChange | 显示隐藏的回调 | (open: boolean) => void | - | 4.23.0 |
59
+
60
+
61
+
62
+
3
63
  <DemoTitle title="Upload" desc="文件选择上传和拖拽上传控件。">
4
64
  #### API
5
65
 
@@ -96,6 +156,41 @@
96
156
 
97
157
 
98
158
 
159
+ <DemoTitle title="Tag" desc="进行标记和分类的小标签">
160
+ #### API
161
+
162
+ | 属性名 | 描述 | 类型 | 默认值 |
163
+ |--------|--------|--------|--------|
164
+ | size | 尺寸 | 'small' \| 'middle' | 'middle' |
165
+ | color | 标签色 | SparkTagColors \| string | 'purple' |
166
+
167
+ <AntdApiRef url="https://ant.design/components/tag-cn/#api"></AntdApiRef>
168
+
169
+
170
+ ## antd API
171
+
172
+ 通用属性参考:[通用属性](/docs/react/common-props)
173
+
174
+ ### Tag
175
+
176
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
177
+ |--------|--------|--------|--------|--------|
178
+ | closeIcon | 自定义关闭按钮。5.7.0:设置为 | ReactNode | false | 4.4.0 |
179
+ | icon | 设置图标 | ReactNode | - | |
180
+ | bordered | 是否有边框 | boolean | true | 5.4.0 |
181
+ | onClose | 关闭时的回调(可通过 | (e: React.MouseEvent) => void | - | |
182
+
183
+
184
+ ### Tag.CheckableTag
185
+
186
+ | 参数 | 说明 | 类型 | 默认值 |
187
+ |--------|--------|--------|--------|
188
+ | checked | 设置标签的选中状态 | boolean | false |
189
+ | onChange | 点击标签时触发的回调 | (checked) => void | - |
190
+
191
+
192
+
193
+
99
194
  <DemoTitle title="TimePicker" desc="输入或选择时间的控件。">
100
195
  #### API
101
196
 
@@ -209,309 +304,144 @@ type RangeDisabledTime = (
209
304
 
210
305
 
211
306
 
212
- <DemoTitle title="Tooltip" desc="简单的文本提示气泡框">
307
+ <DemoTitle title="Table" desc="展示行列数据。">
213
308
  #### API
214
309
 
215
- | 属性名 | 描述 | 类型 | 默认值 |
216
- |--------|--------|--------|--------|
217
- | mode | 颜色模式 | 'dark' \| 'light' | 'dark' |
218
- | maxHeight | 最大高度 | number \| string | '90vh' |
219
-
220
-
221
- <AntdApiRef url="https://ant.design/components/tooltip-cn/#api"></AntdApiRef>
310
+ <AntdApiRef url="https://ant.design/components/table-cn/#api"></AntdApiRef>
222
311
 
223
312
 
224
313
  ## antd API
225
314
 
226
315
  通用属性参考:[通用属性](/docs/react/common-props)
227
316
 
228
- | 参数 | 说明 | 类型 | 默认值 |
229
- |--------|--------|--------|--------|
230
- | title | 提示文字 | ReactNode \| () => ReactNode | - |
231
-
232
-
233
- ### 共同的 API
234
-
235
- 以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
317
+ ### Table
236
318
 
237
- <!-- prettier-ignore -->
238
319
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
239
320
  |--------|--------|--------|--------|--------|
240
- | align | 该值将合并到 placement 的配置中,设置参考 | object | - | |
241
- | arrow | 修改箭头的显示状态以及修改箭头是否指向目标元素中心 | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
242
- | autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true | |
243
- | color | 背景颜色 | string | - | 4.3.0 |
244
- | defaultOpen | 默认是否显隐 | boolean | false | 4.23.0 |
245
- | destroyOnHidden | 关闭后是否销毁 dom | boolean | false | 5.25.0 |
246
- | fresh | 默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新 | boolean | false | 5.10.0 |
247
- | getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
248
- | mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0.1 | |
249
- | mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 | |
250
- | placement | 气泡框位置,可选 | string | top | |
251
- | trigger | 触发行为,可选 | string \| string[] | hover | |
252
- | open | 用于手动控制浮层显隐,小于 4.23.0 使用 | boolean | false | 4.23.0 |
253
- | zIndex | 设置 Tooltip | number | - | |
254
- | onOpenChange | 显示隐藏的回调 | (open: boolean) => void | - | 4.23.0 |
255
-
256
-
321
+ | bordered | 是否展示外边框和列边框 | boolean | false | |
322
+ | columns | 表格列的配置描述,具体项见下表 | | - | |
323
+ | components | 覆盖默认的 table 元素 | | - | |
324
+ | dataSource | 数据数组 | object[] | - | |
325
+ | expandable | 配置展开属性 | | - | |
326
+ | footer | 表格尾部 | function(currentPageData) | - | |
327
+ | getPopupContainer | 设置表格内各类浮层的渲染节点,如筛选菜单 | (triggerNode) => HTMLElement | () => TableHtmlElement | |
328
+ | loading | 页面是否加载中 | boolean \| | false | |
329
+ | locale | 默认文案设置,目前包括排序、过滤、空数据文案 | object | | |
330
+ | pagination | 分页器,参考 | object \| | - | |
331
+ | rowClassName | 表格行的类名 | function(record, index): string | - | |
332
+ | rowKey | 表格行 key 的取值,可以是字符串或一个函数 | string \| function(record): string | key | |
333
+ | rowSelection | 表格行是否可选择, | object | - | |
334
+ | rowHoverable | 表格行是否开启 hover 交互 | boolean | true | 5.16.0 |
335
+ | scroll | 表格是否可滚动,也可以指定滚动区域的宽、高, | object | - | |
336
+ | showHeader | 是否显示表头 | boolean | true | |
337
+ | showSorterTooltip | 表头是否显示下一次排序的 tooltip 提示。当参数类型为对象时,将被设置为 Tooltip 的属性 | boolean \| | { target: 'full-header' } | 5.16.0 |
338
+ | size | 表格大小 | large | large | |
339
+ | sortDirections | 支持的排序方式,取值为 | Array | [ | |
340
+ | sticky | 设置粘性头部和滚动条 | boolean \| | - | 4.6.0 (getContainer: 4.7.0) |
341
+ | summary | 总结栏 | (currentData) => ReactNode | - | |
342
+ | tableLayout | 表格元素的 | - \| | 无 | |
343
+ | title | 表格标题 | function(currentPageData) | - | |
344
+ | virtual | 支持虚拟列表 | boolean | - | 5.9.0 |
345
+ | onChange | 分页、排序、筛选变化时触发 | function(pagination, filters, sorter, extra: { currentDataSource: [], action: | - | |
346
+ | onHeaderRow | 设置头部行属性 | function(columns, index) | - | |
347
+ | onRow | 设置行属性 | function(record, index) | - | |
348
+ | onScroll | 表单内容滚动时触发(虚拟滚动下只有垂直滚动会触发事件) | function(event) | - | 5.16.0 |
257
349
 
258
350
 
259
- <DemoTitle title="Video" desc="视频展示">
260
- #### API
351
+ ### Table ref
261
352
 
262
- | 属性名 | 描述 | 类型 | 默认值 |
353
+ | 参数 | 说明 | 类型 | 版本 |
263
354
  |--------|--------|--------|--------|
264
- | mouseEnterAutoPlay | 鼠标进入时是否自动播放 | boolean | false |
265
- | children | video内部设置了按钮在暗色背景下的样式,如果有一些操作按钮想继承这个样式可以在这里传入 | React.ReactNode | |
355
+ | nativeElement | 最外层 div 元素 | HTMLDivElement | 5.11.0 |
356
+ | scrollTo | 滚动到目标位置(设置 | (config: { index?: number, key?: React.Key, top?: number }) => void | 5.11.0 |
266
357
 
267
358
 
359
+ #### onRow 用法
268
360
 
361
+ 适用于 `onRow` `onHeaderRow` `onCell` `onHeaderCell`。
269
362
 
270
363
 
364
+ ```jsx
365
+ <Table
366
+ onRow={(record) => {
367
+ return {
368
+ onClick: (event) => {}, // 点击行
369
+ onDoubleClick: (event) => {},
370
+ onContextMenu: (event) => {},
371
+ onMouseEnter: (event) => {}, // 鼠标移入行
372
+ onMouseLeave: (event) => {},
373
+ };
374
+ }}
375
+ onHeaderRow={(columns, index) => {
376
+ return {
377
+ onClick: () => {}, // 点击表头行
378
+ };
379
+ }}
380
+ />
381
+ ```
271
382
 
272
- <DemoTitle title="Tag" desc="进行标记和分类的小标签">
273
- #### API
274
383
 
275
- | 属性名 | 描述 | 类型 | 默认值 |
276
- |--------|--------|--------|--------|
277
- | size | 尺寸 | 'small' \| 'middle' | 'middle' |
278
- | color | 标签色 | SparkTagColors \| string | 'purple' |
384
+ ### Column
279
385
 
280
- <AntdApiRef url="https://ant.design/components/tag-cn/#api"></AntdApiRef>
386
+ 列描述数据对象,是 columns 中的一项,Column 使用相同的 API。
281
387
 
388
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
389
+ |--------|--------|--------|--------|--------|
390
+ | align | 设置列的对齐方式 | left | left | |
391
+ | className | 列样式类名 | string | - | |
392
+ | colSpan | 表头列合并,设置为 0 时,不渲染 | number | - | |
393
+ | dataIndex | 列数据在数据项中对应的路径,支持通过数组查询嵌套路径 | string \| string[] | - | |
394
+ | defaultFilteredValue | 默认筛选值 | string[] | - | |
395
+ | filterResetToDefaultFilteredValue | 点击重置按钮的时候,是否恢复默认筛选值 | boolean | false | |
396
+ | defaultSortOrder | 默认排序顺序 | ascend | - | |
397
+ | ellipsis | 超过宽度将自动省略,暂不支持和排序筛选一起使用。 | boolean \| { showTitle?: boolean } | false | showTitle: 4.3.0 |
398
+ | filterDropdown | 可以自定义筛选菜单,此函数只负责渲染图层,需要自行编写各种交互 | ReactNode \| (props: | - | |
399
+ | filtered | 标识数据是否经过过滤,筛选图标会高亮 | boolean | false | |
400
+ | filteredValue | 筛选的受控属性,外界可用此控制列的筛选状态,值为已筛选的 value 数组 | string[] | - | |
401
+ | filterIcon | 自定义 filter 图标。 | ReactNode \| (filtered: boolean) => ReactNode | false | |
402
+ | filterOnClose | 是否在筛选菜单关闭时触发筛选 | boolean | true | 5.15.0 |
403
+ | filterMultiple | 是否多选 | boolean | true | |
404
+ | filterMode | 指定筛选菜单的用户界面 | 'menu' \| 'tree' | 'menu' | 4.17.0 |
405
+ | filterSearch | 筛选菜单项是否可搜索 | boolean \| function(input, record):boolean | false | boolean:4.17.0 function:4.19.0 |
406
+ | filters | 表头的筛选菜单项 | object[] | - | |
407
+ | filterDropdownProps | 自定义下拉属性,在 | | - | 5.22.0 |
408
+ | fixed | (IE 下无效)列是否固定,可选 | boolean \| string | false | |
409
+ | key | React 需要的 key,如果已经设置了唯一的 | string | - | |
410
+ | render | 生成复杂数据的渲染函数,参数分别为当前单元格的值,当前行数据,行索引 | function(value, record, index) {} | - | |
411
+ | responsive | 响应式 breakpoint 配置列表。未设置则始终可见。 | | - | 4.2.0 |
412
+ | rowScope | 设置列范围 | row | - | 5.1.0 |
413
+ | shouldCellUpdate | 自定义单元格渲染时机 | (record, prevRecord) => boolean | - | 4.3.0 |
414
+ | showSorterTooltip | 表头显示下一次排序的 tooltip 提示, 覆盖 table 中 | boolean \| | { target: 'full-header' } | 5.16.0 |
415
+ | sortDirections | 支持的排序方式,覆盖 | Array | [ | |
416
+ | sorter | 排序函数,本地排序使用一个函数(参考 | function \| boolean \| { compare: function, multiple: number } | - | |
417
+ | sortOrder | 排序的受控属性,外界可用此控制列的排序,可设置为 | ascend | - | |
418
+ | sortIcon | 自定义 sort 图标 | (props: { sortOrder }) => ReactNode | - | 5.6.0 |
419
+ | title | 列头显示文字(函数用法 | ReactNode \| ({ sortOrder, sortColumn, filters }) => ReactNode | - | |
420
+ | width | 列宽度( | string \| number | - | |
421
+ | minWidth | 最小列宽度,只在 | number | - | 5.21.0 |
422
+ | hidden | 隐藏列 | boolean | false | 5.13.0 |
423
+ | onCell | 设置单元格属性 | function(record, rowIndex) | - | |
424
+ | onFilter | 本地模式下,确定筛选的运行函数 | function | - | |
425
+ | onHeaderCell | 设置头部单元格属性 | function(column) | - | |
282
426
 
283
- ## antd API
284
427
 
285
- 通用属性参考:[通用属性](/docs/react/common-props)
428
+ ### ColumnGroup
286
429
 
287
- ### Tag
430
+ | 参数 | 说明 | 类型 | 默认值 |
431
+ |--------|--------|--------|--------|
432
+ | title | 列头显示文字 | ReactNode | - |
288
433
 
289
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
290
- |--------|--------|--------|--------|--------|
291
- | closeIcon | 自定义关闭按钮。5.7.0:设置为 | ReactNode | false | 4.4.0 |
292
- | icon | 设置图标 | ReactNode | - | |
293
- | bordered | 是否有边框 | boolean | true | 5.4.0 |
294
- | onClose | 关闭时的回调(可通过 | (e: React.MouseEvent) => void | - | |
295
434
 
435
+ ### pagination
296
436
 
297
- ### Tag.CheckableTag
437
+ 分页的配置项。
298
438
 
299
439
  | 参数 | 说明 | 类型 | 默认值 |
300
440
  |--------|--------|--------|--------|
301
- | checked | 设置标签的选中状态 | boolean | false |
302
- | onChange | 点击标签时触发的回调 | (checked) => void | - |
441
+ | position | 指定分页显示的位置, 取值为 | Array | [ |
303
442
 
304
443
 
305
-
306
-
307
- <DemoTitle title="Tabs" desc="用户可以通过点击不同的标签在同一页面中查看不同的内容区域。">
308
- #### API
309
-
310
- | 属性名 | 描述 | 类型 | 默认值 |
311
- |--------|--------|--------|--------|
312
- | type | 类型 | 'line' \| 'card' \| 'editable-card' \| 'segmented' | true |
313
-
314
-
315
- <AntdApiRef url="https://ant.design/components/tabs-cn/#api"></AntdApiRef>
316
-
317
-
318
- ## antd API
319
-
320
- 通用属性参考:[通用属性](/docs/react/common-props)
321
-
322
- ### Tabs
323
-
324
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
325
- |--------|--------|--------|--------|--------|
326
- | activeKey | 当前激活 tab 面板的 key | string | - | |
327
- | addIcon | 自定义添加按钮,设置 | ReactNode | | 4.4.0 |
328
- | animated | 是否使用动画切换 Tabs | boolean\| { inkBar: boolean, tabPane: boolean } | { inkBar: true, tabPane: false } | |
329
- | centered | 标签居中展示 | boolean | false | 4.4.0 |
330
- | defaultActiveKey | 初始化选中面板的 key,如果没有设置 activeKey | string | 第一个面板的 key | |
331
- | hideAdd | 是否隐藏加号图标,在 | boolean | false | |
332
- | indicator | 自定义指示条的长度和对齐方式 | { size?: number \| (origin: number) => number; align: | - | 5.13.0 |
333
- | items | 配置选项卡内容 | | [] | 4.23.0 |
334
- | more | 自定义折叠菜单属性 | | { icon: | |
335
- | removeIcon | 自定义删除按钮,设置 | ReactNode | | 5.15.0 |
336
- | popupClassName | 更多菜单的 | string | - | 4.21.0 |
337
- | renderTabBar | 替换 TabBar,用于二次封装标签头 | (props: DefaultTabBarProps, DefaultTabBar: React.ComponentClass) => React.ReactElement | - | |
338
- | size | 大小,提供 | string | middle | |
339
- | tabBarExtraContent | tab bar 上额外的元素 | ReactNode \| {left?: ReactNode, right?: ReactNode} | - | object: 4.6.0 |
340
- | tabBarGutter | tabs 之间的间隙 | number | - | |
341
- | tabBarStyle | tab bar 的样式对象 | CSSProperties | - | |
342
- | tabPosition | 页签位置,可选值有 | string | top | |
343
- | destroyOnHidden | 被隐藏时是否销毁 DOM 结构 | boolean | false | 5.25.0 |
344
- | onChange | 切换面板的回调 | (activeKey: string) => void | - | |
345
- | onEdit | 新增和删除页签的回调,在 | (action === 'add' ? event : targetKey, action) => void | - | |
346
- | onTabClick | tab 被点击的回调 | (key: string, event: MouseEvent) => void | - | |
347
- | onTabScroll | tab 滚动时触发 | ({ direction: | - | 4.3.0 |
348
-
349
-
350
- 更多属性查看 [rc-tabs tabs](https://github.com/react-component/tabs#tabs)
351
-
352
- ### TabItemType
353
-
354
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
355
- |--------|--------|--------|--------|--------|
356
- | closeIcon | 自定义关闭图标,在 | ReactNode | - | |
357
- | destroyOnHidden | 被隐藏时是否销毁 DOM 结构 | boolean | false | 5.25.0 |
358
- | disabled | 禁用某一项 | boolean | false | |
359
- | forceRender | 被隐藏时是否渲染 DOM 结构 | boolean | false | |
360
- | key | 对应 activeKey | string | - | |
361
- | label | 选项卡头显示文字 | ReactNode | - | |
362
- | icon | 选项卡头显示图标 | ReactNode | - | 5.12.0 |
363
- | children | 选项卡头显示内容 | ReactNode | - | |
364
- | closable | 是否显示选项卡的关闭按钮,在 | boolean | true | |
365
-
366
-
367
- ### MoreProps
368
-
369
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
370
- |--------|--------|--------|--------|--------|
371
- | icon | 自定义折叠图标 | ReactNode | - | |
372
- | | | | | |
373
-
374
-
375
-
376
-
377
- <DemoTitle title="Table" desc="展示行列数据。">
378
- #### API
379
-
380
- <AntdApiRef url="https://ant.design/components/table-cn/#api"></AntdApiRef>
381
-
382
-
383
- ## antd API
384
-
385
- 通用属性参考:[通用属性](/docs/react/common-props)
386
-
387
- ### Table
388
-
389
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
390
- |--------|--------|--------|--------|--------|
391
- | bordered | 是否展示外边框和列边框 | boolean | false | |
392
- | columns | 表格列的配置描述,具体项见下表 | | - | |
393
- | components | 覆盖默认的 table 元素 | | - | |
394
- | dataSource | 数据数组 | object[] | - | |
395
- | expandable | 配置展开属性 | | - | |
396
- | footer | 表格尾部 | function(currentPageData) | - | |
397
- | getPopupContainer | 设置表格内各类浮层的渲染节点,如筛选菜单 | (triggerNode) => HTMLElement | () => TableHtmlElement | |
398
- | loading | 页面是否加载中 | boolean \| | false | |
399
- | locale | 默认文案设置,目前包括排序、过滤、空数据文案 | object | | |
400
- | pagination | 分页器,参考 | object \| | - | |
401
- | rowClassName | 表格行的类名 | function(record, index): string | - | |
402
- | rowKey | 表格行 key 的取值,可以是字符串或一个函数 | string \| function(record): string | key | |
403
- | rowSelection | 表格行是否可选择, | object | - | |
404
- | rowHoverable | 表格行是否开启 hover 交互 | boolean | true | 5.16.0 |
405
- | scroll | 表格是否可滚动,也可以指定滚动区域的宽、高, | object | - | |
406
- | showHeader | 是否显示表头 | boolean | true | |
407
- | showSorterTooltip | 表头是否显示下一次排序的 tooltip 提示。当参数类型为对象时,将被设置为 Tooltip 的属性 | boolean \| | { target: 'full-header' } | 5.16.0 |
408
- | size | 表格大小 | large | large | |
409
- | sortDirections | 支持的排序方式,取值为 | Array | [ | |
410
- | sticky | 设置粘性头部和滚动条 | boolean \| | - | 4.6.0 (getContainer: 4.7.0) |
411
- | summary | 总结栏 | (currentData) => ReactNode | - | |
412
- | tableLayout | 表格元素的 | - \| | 无 | |
413
- | title | 表格标题 | function(currentPageData) | - | |
414
- | virtual | 支持虚拟列表 | boolean | - | 5.9.0 |
415
- | onChange | 分页、排序、筛选变化时触发 | function(pagination, filters, sorter, extra: { currentDataSource: [], action: | - | |
416
- | onHeaderRow | 设置头部行属性 | function(columns, index) | - | |
417
- | onRow | 设置行属性 | function(record, index) | - | |
418
- | onScroll | 表单内容滚动时触发(虚拟滚动下只有垂直滚动会触发事件) | function(event) | - | 5.16.0 |
419
-
420
-
421
- ### Table ref
422
-
423
- | 参数 | 说明 | 类型 | 版本 |
424
- |--------|--------|--------|--------|
425
- | nativeElement | 最外层 div 元素 | HTMLDivElement | 5.11.0 |
426
- | scrollTo | 滚动到目标位置(设置 | (config: { index?: number, key?: React.Key, top?: number }) => void | 5.11.0 |
427
-
428
-
429
- #### onRow 用法
430
-
431
- 适用于 `onRow` `onHeaderRow` `onCell` `onHeaderCell`。
432
-
433
-
434
- ```jsx
435
- <Table
436
- onRow={(record) => {
437
- return {
438
- onClick: (event) => {}, // 点击行
439
- onDoubleClick: (event) => {},
440
- onContextMenu: (event) => {},
441
- onMouseEnter: (event) => {}, // 鼠标移入行
442
- onMouseLeave: (event) => {},
443
- };
444
- }}
445
- onHeaderRow={(columns, index) => {
446
- return {
447
- onClick: () => {}, // 点击表头行
448
- };
449
- }}
450
- />
451
- ```
452
-
453
-
454
- ### Column
455
-
456
- 列描述数据对象,是 columns 中的一项,Column 使用相同的 API。
457
-
458
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
459
- |--------|--------|--------|--------|--------|
460
- | align | 设置列的对齐方式 | left | left | |
461
- | className | 列样式类名 | string | - | |
462
- | colSpan | 表头列合并,设置为 0 时,不渲染 | number | - | |
463
- | dataIndex | 列数据在数据项中对应的路径,支持通过数组查询嵌套路径 | string \| string[] | - | |
464
- | defaultFilteredValue | 默认筛选值 | string[] | - | |
465
- | filterResetToDefaultFilteredValue | 点击重置按钮的时候,是否恢复默认筛选值 | boolean | false | |
466
- | defaultSortOrder | 默认排序顺序 | ascend | - | |
467
- | ellipsis | 超过宽度将自动省略,暂不支持和排序筛选一起使用。 | boolean \| { showTitle?: boolean } | false | showTitle: 4.3.0 |
468
- | filterDropdown | 可以自定义筛选菜单,此函数只负责渲染图层,需要自行编写各种交互 | ReactNode \| (props: | - | |
469
- | filtered | 标识数据是否经过过滤,筛选图标会高亮 | boolean | false | |
470
- | filteredValue | 筛选的受控属性,外界可用此控制列的筛选状态,值为已筛选的 value 数组 | string[] | - | |
471
- | filterIcon | 自定义 filter 图标。 | ReactNode \| (filtered: boolean) => ReactNode | false | |
472
- | filterOnClose | 是否在筛选菜单关闭时触发筛选 | boolean | true | 5.15.0 |
473
- | filterMultiple | 是否多选 | boolean | true | |
474
- | filterMode | 指定筛选菜单的用户界面 | 'menu' \| 'tree' | 'menu' | 4.17.0 |
475
- | filterSearch | 筛选菜单项是否可搜索 | boolean \| function(input, record):boolean | false | boolean:4.17.0 function:4.19.0 |
476
- | filters | 表头的筛选菜单项 | object[] | - | |
477
- | filterDropdownProps | 自定义下拉属性,在 | | - | 5.22.0 |
478
- | fixed | (IE 下无效)列是否固定,可选 | boolean \| string | false | |
479
- | key | React 需要的 key,如果已经设置了唯一的 | string | - | |
480
- | render | 生成复杂数据的渲染函数,参数分别为当前单元格的值,当前行数据,行索引 | function(value, record, index) {} | - | |
481
- | responsive | 响应式 breakpoint 配置列表。未设置则始终可见。 | | - | 4.2.0 |
482
- | rowScope | 设置列范围 | row | - | 5.1.0 |
483
- | shouldCellUpdate | 自定义单元格渲染时机 | (record, prevRecord) => boolean | - | 4.3.0 |
484
- | showSorterTooltip | 表头显示下一次排序的 tooltip 提示, 覆盖 table 中 | boolean \| | { target: 'full-header' } | 5.16.0 |
485
- | sortDirections | 支持的排序方式,覆盖 | Array | [ | |
486
- | sorter | 排序函数,本地排序使用一个函数(参考 | function \| boolean \| { compare: function, multiple: number } | - | |
487
- | sortOrder | 排序的受控属性,外界可用此控制列的排序,可设置为 | ascend | - | |
488
- | sortIcon | 自定义 sort 图标 | (props: { sortOrder }) => ReactNode | - | 5.6.0 |
489
- | title | 列头显示文字(函数用法 | ReactNode \| ({ sortOrder, sortColumn, filters }) => ReactNode | - | |
490
- | width | 列宽度( | string \| number | - | |
491
- | minWidth | 最小列宽度,只在 | number | - | 5.21.0 |
492
- | hidden | 隐藏列 | boolean | false | 5.13.0 |
493
- | onCell | 设置单元格属性 | function(record, rowIndex) | - | |
494
- | onFilter | 本地模式下,确定筛选的运行函数 | function | - | |
495
- | onHeaderCell | 设置头部单元格属性 | function(column) | - | |
496
-
497
-
498
- ### ColumnGroup
499
-
500
- | 参数 | 说明 | 类型 | 默认值 |
501
- |--------|--------|--------|--------|
502
- | title | 列头显示文字 | ReactNode | - |
503
-
504
-
505
- ### pagination
506
-
507
- 分页的配置项。
508
-
509
- | 参数 | 说明 | 类型 | 默认值 |
510
- |--------|--------|--------|--------|
511
- | position | 指定分页显示的位置, 取值为 | Array | [ |
512
-
513
-
514
- 更多配置项,请查看 [`Pagination`](/components/pagination-cn)。
444
+ 更多配置项,请查看 [`Pagination`](/components/pagination-cn)。
515
445
 
516
446
  ### expandable
517
447
 
@@ -670,61 +600,72 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
670
600
 
671
601
 
672
602
 
673
- <DemoTitle title="Steps" desc="引导用户按照流程完成任务的导航条。">
603
+ <DemoTitle title="Tabs" desc="用户可以通过点击不同的标签在同一页面中查看不同的内容区域。">
674
604
  #### API
675
605
 
676
- <AntdApiRef url="https://ant.design/components/steps-cn/#api"></AntdApiRef>
606
+ | 属性名 | 描述 | 类型 | 默认值 |
607
+ |--------|--------|--------|--------|
608
+ | type | 类型 | 'line' \| 'card' \| 'editable-card' \| 'segmented' | true |
609
+
610
+
611
+ <AntdApiRef url="https://ant.design/components/tabs-cn/#api"></AntdApiRef>
677
612
 
678
613
 
679
614
  ## antd API
680
615
 
681
616
  通用属性参考:[通用属性](/docs/react/common-props)
682
617
 
683
- ### Steps
618
+ ### Tabs
684
619
 
685
- 整体步骤条。
620
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
621
+ |--------|--------|--------|--------|--------|
622
+ | activeKey | 当前激活 tab 面板的 key | string | - | |
623
+ | addIcon | 自定义添加按钮,设置 | ReactNode | | 4.4.0 |
624
+ | animated | 是否使用动画切换 Tabs | boolean\| { inkBar: boolean, tabPane: boolean } | { inkBar: true, tabPane: false } | |
625
+ | centered | 标签居中展示 | boolean | false | 4.4.0 |
626
+ | defaultActiveKey | 初始化选中面板的 key,如果没有设置 activeKey | string | 第一个面板的 key | |
627
+ | hideAdd | 是否隐藏加号图标,在 | boolean | false | |
628
+ | indicator | 自定义指示条的长度和对齐方式 | { size?: number \| (origin: number) => number; align: | - | 5.13.0 |
629
+ | items | 配置选项卡内容 | | [] | 4.23.0 |
630
+ | more | 自定义折叠菜单属性 | | { icon: | |
631
+ | removeIcon | 自定义删除按钮,设置 | ReactNode | | 5.15.0 |
632
+ | popupClassName | 更多菜单的 | string | - | 4.21.0 |
633
+ | renderTabBar | 替换 TabBar,用于二次封装标签头 | (props: DefaultTabBarProps, DefaultTabBar: React.ComponentClass) => React.ReactElement | - | |
634
+ | size | 大小,提供 | string | middle | |
635
+ | tabBarExtraContent | tab bar 上额外的元素 | ReactNode \| {left?: ReactNode, right?: ReactNode} | - | object: 4.6.0 |
636
+ | tabBarGutter | tabs 之间的间隙 | number | - | |
637
+ | tabBarStyle | tab bar 的样式对象 | CSSProperties | - | |
638
+ | tabPosition | 页签位置,可选值有 | string | top | |
639
+ | destroyOnHidden | 被隐藏时是否销毁 DOM 结构 | boolean | false | 5.25.0 |
640
+ | onChange | 切换面板的回调 | (activeKey: string) => void | - | |
641
+ | onEdit | 新增和删除页签的回调,在 | (action === 'add' ? event : targetKey, action) => void | - | |
642
+ | onTabClick | tab 被点击的回调 | (key: string, event: MouseEvent) => void | - | |
643
+ | onTabScroll | tab 滚动时触发 | ({ direction: | - | 4.3.0 |
644
+
645
+
646
+ 更多属性查看 [rc-tabs tabs](https://github.com/react-component/tabs#tabs)
647
+
648
+ ### TabItemType
686
649
 
687
650
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
688
651
  |--------|--------|--------|--------|--------|
689
- | className | 步骤条类名 | string | - | |
690
- | current | 指定当前步骤,从 0 开始记数。在子 Step 元素中,可以通过 | number | 0 | |
691
- | direction | 指定步骤条方向。目前支持水平( | string | horizontal | |
692
- | initial | 起始序号,从 0 开始记数 | number | 0 | |
693
- | labelPlacement | 指定标签放置位置,默认水平放图标右侧,可选 | string | horizontal | |
694
- | percent | 当前 | number | - | 4.5.0 |
695
- | progressDot | 点状步骤条,可以设置为一个 function,labelPlacement 将强制为 | boolean \| (iconDot, {index, status, title, description}) => ReactNode | false | |
696
- | responsive | 当屏幕宽度小于 | boolean | true | |
697
- | size | 指定大小,目前支持普通( | string | default | |
698
- | status | 指定当前步骤的状态,可选 | string | process | |
699
- | type | 步骤条类型,可选 | string | default | inline: 5.0 |
700
- | onChange | 点击切换步骤时触发 | (current) => void | - | |
701
- | items | 配置选项卡内容 | | [] | 4.24.0 |
702
-
703
-
704
- ### `type="inline"`
705
-
706
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
707
- |--------|--------|--------|--------|--------|
708
- | className | 步骤条类名 | string | - | |
709
- | current | 指定当前步骤,从 0 开始记数。在子 Step 元素中,可以通过 | number | 0 | |
710
- | initial | 起始序号,从 0 开始记数 | number | 0 | |
711
- | status | 指定当前步骤的状态,可选 | string | process | |
712
- | onChange | 点击切换步骤时触发 | (current) => void | - | |
713
- | items | 配置选项卡内容,不支持 | | [] | 4.24.0 |
714
-
652
+ | closeIcon | 自定义关闭图标,在 | ReactNode | - | |
653
+ | destroyOnHidden | 被隐藏时是否销毁 DOM 结构 | boolean | false | 5.25.0 |
654
+ | disabled | 禁用某一项 | boolean | false | |
655
+ | forceRender | 被隐藏时是否渲染 DOM 结构 | boolean | false | |
656
+ | key | 对应 activeKey | string | - | |
657
+ | label | 选项卡头显示文字 | ReactNode | - | |
658
+ | icon | 选项卡头显示图标 | ReactNode | - | 5.12.0 |
659
+ | children | 选项卡头显示内容 | ReactNode | - | |
660
+ | closable | 是否显示选项卡的关闭按钮,在 | boolean | true | |
715
661
 
716
- ### StepItem
717
662
 
718
- 步骤条内的每一个步骤。
663
+ ### MoreProps
719
664
 
720
665
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
721
666
  |--------|--------|--------|--------|--------|
722
- | description | 步骤的详情描述,可选 | ReactNode | - | |
723
- | disabled | 禁用点击 | boolean | false | |
724
- | icon | 步骤图标的类型,可选 | ReactNode | - | |
725
- | status | 指定状态。当不配置该属性时,会使用 Steps 的 | string | wait | |
726
- | subTitle | 子标题 | ReactNode | - | |
727
- | title | 标题 | ReactNode | - | |
667
+ | icon | 自定义折叠图标 | ReactNode | - | |
668
+ | | | | | |
728
669
 
729
670
 
730
671
 
@@ -789,80 +730,78 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
789
730
 
790
731
 
791
732
 
792
- <DemoTitle title="Spinner" desc="指示页面或区块的加载中状态">
733
+ <DemoTitle title="Steps" desc="引导用户按照流程完成任务的导航条。">
793
734
  #### API
794
735
 
795
- | 属性名 | 描述 | 类型 | 默认值 |
796
- |--------|--------|--------|--------|
797
- | tip | indicator下方的tip | React.ReactNode | - |
798
- | indicator | 自定义indicator,用于展示progress的百分比和加载文案 | React.ReactNode | - |
799
- | children | 被spinner包裹的子元素 | React.ReactNode | - |
800
- | style | spinner最外层的样式 | React.CSSProperties | - |
801
- | className | spinner的类名 | string | - |
802
- | percent | 进度条的百分比 | number | - |
803
- | spinning | 是否为加载中状态 | boolean | false |
804
- | showProgress | 是否显示进度条,如果为true,不需要手动在children中添加Progress组件 | boolean | false |
805
-
806
-
736
+ <AntdApiRef url="https://ant.design/components/steps-cn/#api"></AntdApiRef>
807
737
 
808
738
 
809
- <DemoTitle title="Skeleton" desc="在内容加载时提供占位图形展示。">
810
739
  ## antd API
811
740
 
812
741
  通用属性参考:[通用属性](/docs/react/common-props)
813
742
 
814
- ### Skeleton
815
-
816
- | 属性 | 说明 | 类型 | 默认值 |
817
- |--------|--------|--------|--------|
818
- | active | 是否展示动画效果 | boolean | false |
819
- | avatar | 是否显示头像占位图 | boolean \| | false |
820
- | loading | 为 true 时,显示占位图。反之则直接展示子组件 | boolean | - |
821
- | paragraph | 是否显示段落占位图 | boolean \| | true |
822
- | round | 为 true 时,段落和标题显示圆角 | boolean | false |
823
- | title | 是否显示标题占位图 | boolean \| | true |
824
-
743
+ ### Steps
825
744
 
826
- ### SkeletonAvatarProps
745
+ 整体步骤条。
827
746
 
828
- | 属性 | 说明 | 类型 | 默认值 |
829
- |--------|--------|--------|--------|
830
- | active | 是否展示动画效果,仅在单独使用头像骨架时生效 | boolean | false |
831
- | shape | 指定头像的形状 | circle | - |
832
- | size | 设置头像占位图的大小 | number \| | - |
747
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
748
+ |--------|--------|--------|--------|--------|
749
+ | className | 步骤条类名 | string | - | |
750
+ | current | 指定当前步骤,从 0 开始记数。在子 Step 元素中,可以通过 | number | 0 | |
751
+ | direction | 指定步骤条方向。目前支持水平( | string | horizontal | |
752
+ | initial | 起始序号,从 0 开始记数 | number | 0 | |
753
+ | labelPlacement | 指定标签放置位置,默认水平放图标右侧,可选 | string | horizontal | |
754
+ | percent | 当前 | number | - | 4.5.0 |
755
+ | progressDot | 点状步骤条,可以设置为一个 function,labelPlacement 将强制为 | boolean \| (iconDot, {index, status, title, description}) => ReactNode | false | |
756
+ | responsive | 当屏幕宽度小于 | boolean | true | |
757
+ | size | 指定大小,目前支持普通( | string | default | |
758
+ | status | 指定当前步骤的状态,可选 | string | process | |
759
+ | type | 步骤条类型,可选 | string | default | inline: 5.0 |
760
+ | onChange | 点击切换步骤时触发 | (current) => void | - | |
761
+ | items | 配置选项卡内容 | | [] | 4.24.0 |
833
762
 
834
763
 
835
- ### SkeletonTitleProps
764
+ ### `type="inline"`
836
765
 
837
- | 属性 | 说明 | 类型 | 默认值 |
838
- |--------|--------|--------|--------|
839
- | width | 设置标题占位图的宽度 | number \| string | - |
766
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
767
+ |--------|--------|--------|--------|--------|
768
+ | className | 步骤条类名 | string | - | |
769
+ | current | 指定当前步骤,从 0 开始记数。在子 Step 元素中,可以通过 | number | 0 | |
770
+ | initial | 起始序号,从 0 开始记数 | number | 0 | |
771
+ | status | 指定当前步骤的状态,可选 | string | process | |
772
+ | onChange | 点击切换步骤时触发 | (current) => void | - | |
773
+ | items | 配置选项卡内容,不支持 | | [] | 4.24.0 |
840
774
 
841
775
 
842
- ### SkeletonParagraphProps
776
+ ### StepItem
843
777
 
844
- | 属性 | 说明 | 类型 | 默认值 |
845
- |--------|--------|--------|--------|
846
- | rows | 设置段落占位图的行数 | number | - |
847
- | width | 设置段落占位图的宽度,若为数组时则为对应的每行宽度,反之则是最后一行的宽度 | number \| string \| Array | - |
778
+ 步骤条内的每一个步骤。
848
779
 
780
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
781
+ |--------|--------|--------|--------|--------|
782
+ | description | 步骤的详情描述,可选 | ReactNode | - | |
783
+ | disabled | 禁用点击 | boolean | false | |
784
+ | icon | 步骤图标的类型,可选 | ReactNode | - | |
785
+ | status | 指定状态。当不配置该属性时,会使用 Steps 的 | string | wait | |
786
+ | subTitle | 子标题 | ReactNode | - | |
787
+ | title | 标题 | ReactNode | - | |
849
788
 
850
- ### SkeletonButtonProps
851
789
 
852
- | 属性 | 说明 | 类型 | 默认值 | 版本 |
853
- |--------|--------|--------|--------|--------|
854
- | active | 是否展示动画效果 | boolean | false | |
855
- | block | 将按钮宽度调整为其父宽度的选项 | boolean | false | 4.17.0 |
856
- | shape | 指定按钮的形状 | circle | - | |
857
- | size | 设置按钮的大小 | large | - | |
858
790
 
859
791
 
860
- ### SkeletonInputProps
792
+ <DemoTitle title="Spinner" desc="指示页面或区块的加载中状态">
793
+ #### API
861
794
 
862
- | 属性 | 说明 | 类型 | 默认值 |
795
+ | 属性名 | 描述 | 类型 | 默认值 |
863
796
  |--------|--------|--------|--------|
864
- | active | 是否展示动画效果 | boolean | false |
865
- | size | 设置输入框的大小 | large | - |
797
+ | tip | indicator下方的tip | React.ReactNode | - |
798
+ | indicator | 自定义indicator,用于展示progress的百分比和加载文案 | React.ReactNode | - |
799
+ | children | 被spinner包裹的子元素 | React.ReactNode | - |
800
+ | style | spinner最外层的样式 | React.CSSProperties | - |
801
+ | className | spinner的类名 | string | - |
802
+ | percent | 进度条的百分比 | number | - |
803
+ | spinning | 是否为加载中状态 | boolean | false |
804
+ | showProgress | 是否显示进度条,如果为true,不需要手动在children中添加Progress组件 | boolean | false |
866
805
 
867
806
 
868
807
 
@@ -965,6 +904,18 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
965
904
 
966
905
 
967
906
 
907
+ <DemoTitle title="Result" desc="为操作结果提供反馈信息的展示。">
908
+ ## API
909
+
910
+ | 属性名 | 描述 | 类型 | 默认值 |
911
+ |--------|--------|--------|--------|
912
+ | texture | 是否显示纹理 | boolean | false |
913
+
914
+
915
+
916
+
917
+
918
+
968
919
  <DemoTitle title="Slider" desc="滑动型输入器,展示当前值和可选范围。">
969
920
  #### API
970
921
 
@@ -1029,6 +980,67 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1029
980
 
1030
981
 
1031
982
 
983
+ <DemoTitle title="Skeleton" desc="在内容加载时提供占位图形展示。">
984
+ ## antd API
985
+
986
+ 通用属性参考:[通用属性](/docs/react/common-props)
987
+
988
+ ### Skeleton
989
+
990
+ | 属性 | 说明 | 类型 | 默认值 |
991
+ |--------|--------|--------|--------|
992
+ | active | 是否展示动画效果 | boolean | false |
993
+ | avatar | 是否显示头像占位图 | boolean \| | false |
994
+ | loading | 为 true 时,显示占位图。反之则直接展示子组件 | boolean | - |
995
+ | paragraph | 是否显示段落占位图 | boolean \| | true |
996
+ | round | 为 true 时,段落和标题显示圆角 | boolean | false |
997
+ | title | 是否显示标题占位图 | boolean \| | true |
998
+
999
+
1000
+ ### SkeletonAvatarProps
1001
+
1002
+ | 属性 | 说明 | 类型 | 默认值 |
1003
+ |--------|--------|--------|--------|
1004
+ | active | 是否展示动画效果,仅在单独使用头像骨架时生效 | boolean | false |
1005
+ | shape | 指定头像的形状 | circle | - |
1006
+ | size | 设置头像占位图的大小 | number \| | - |
1007
+
1008
+
1009
+ ### SkeletonTitleProps
1010
+
1011
+ | 属性 | 说明 | 类型 | 默认值 |
1012
+ |--------|--------|--------|--------|
1013
+ | width | 设置标题占位图的宽度 | number \| string | - |
1014
+
1015
+
1016
+ ### SkeletonParagraphProps
1017
+
1018
+ | 属性 | 说明 | 类型 | 默认值 |
1019
+ |--------|--------|--------|--------|
1020
+ | rows | 设置段落占位图的行数 | number | - |
1021
+ | width | 设置段落占位图的宽度,若为数组时则为对应的每行宽度,反之则是最后一行的宽度 | number \| string \| Array | - |
1022
+
1023
+
1024
+ ### SkeletonButtonProps
1025
+
1026
+ | 属性 | 说明 | 类型 | 默认值 | 版本 |
1027
+ |--------|--------|--------|--------|--------|
1028
+ | active | 是否展示动画效果 | boolean | false | |
1029
+ | block | 将按钮宽度调整为其父宽度的选项 | boolean | false | 4.17.0 |
1030
+ | shape | 指定按钮的形状 | circle | - | |
1031
+ | size | 设置按钮的大小 | large | - | |
1032
+
1033
+
1034
+ ### SkeletonInputProps
1035
+
1036
+ | 属性 | 说明 | 类型 | 默认值 |
1037
+ |--------|--------|--------|--------|
1038
+ | active | 是否展示动画效果 | boolean | false |
1039
+ | size | 设置输入框的大小 | large | - |
1040
+
1041
+
1042
+
1043
+
1032
1044
  <DemoTitle title="RadioButton" desc="用于在多个备选项中选中单个状态。">
1033
1045
  #### API
1034
1046
 
@@ -1104,23 +1116,6 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1104
1116
 
1105
1117
 
1106
1118
 
1107
- <DemoTitle title="MdEditor" desc="提示词编辑器,可以高亮 Markdown 的语法,支持自定义槽位变量的插入">
1108
- #### API
1109
-
1110
- | 属性名 | 描述 | 类型 | 默认值 |
1111
- |--------|--------|--------|--------|
1112
- | maxLength | 可以输入内容的最大长度 | number | |
1113
- | value | 输入的内容 | string | (必填) |
1114
- | className | 输入内容的类名 | string | |
1115
- | onChange | 输入内容的回调 | (value: string) => void | |
1116
- | variables | 可以插入的变量列表 | Array | |
1117
- | onCreate | 新增变量的触发回调 | () => void | |
1118
- | createBtnText | 新增变量的按钮文本 | string | |
1119
- | tipsText | 提示文本,传入 false 时隐藏提示 | string \| React.ReactNode \| false | |
1120
-
1121
-
1122
-
1123
-
1124
1119
  <DemoTitle title="Radio" desc="用于在多个备选项中选中单个状态。">
1125
1120
  #### API
1126
1121
 
@@ -1189,18 +1184,6 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1189
1184
 
1190
1185
 
1191
1186
 
1192
- <DemoTitle title="Result" desc="为操作结果提供反馈信息的展示。">
1193
- ## API
1194
-
1195
- | 属性名 | 描述 | 类型 | 默认值 |
1196
- |--------|--------|--------|--------|
1197
- | texture | 是否显示纹理 | boolean | false |
1198
-
1199
-
1200
-
1201
-
1202
-
1203
-
1204
1187
  <DemoTitle title="Progress" desc="用于指示任务的完成进度">
1205
1188
  ## antd API
1206
1189
 
@@ -1253,10 +1236,27 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1253
1236
 
1254
1237
 
1255
1238
 
1256
- <DemoTitle title="Popover" desc="点击/鼠标移入元素,弹出气泡式的卡片浮层">
1239
+ <DemoTitle title="MdEditor" desc="提示词编辑器,可以高亮 Markdown 的语法,支持自定义槽位变量的插入">
1257
1240
  #### API
1258
1241
 
1259
- <AntdApiRef url="https://ant.design/components/popover-cn/#api"></AntdApiRef>
1242
+ | 属性名 | 描述 | 类型 | 默认值 |
1243
+ |--------|--------|--------|--------|
1244
+ | maxLength | 可以输入内容的最大长度 | number | |
1245
+ | value | 输入的内容 | string | (必填) |
1246
+ | className | 输入内容的类名 | string | |
1247
+ | onChange | 输入内容的回调 | (value: string) => void | |
1248
+ | variables | 可以插入的变量列表 | Array | |
1249
+ | onCreate | 新增变量的触发回调 | () => void | |
1250
+ | createBtnText | 新增变量的按钮文本 | string | |
1251
+ | tipsText | 提示文本,传入 false 时隐藏提示 | string \| React.ReactNode \| false | |
1252
+
1253
+
1254
+
1255
+
1256
+ <DemoTitle title="Popover" desc="点击/鼠标移入元素,弹出气泡式的卡片浮层">
1257
+ #### API
1258
+
1259
+ <AntdApiRef url="https://ant.design/components/popover-cn/#api"></AntdApiRef>
1260
1260
 
1261
1261
 
1262
1262
  ## antd API
@@ -1297,6 +1297,63 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1297
1297
 
1298
1298
 
1299
1299
 
1300
+ <DemoTitle title="Popconfirm" desc="点击元素,弹出气泡式的确认框。">
1301
+ #### API
1302
+
1303
+ | 属性名 | 描述 | 类型 | 默认值 |
1304
+ |--------|--------|--------|--------|
1305
+ | type | 类型 | 'info' \| 'warning' \| 'error' \| 'success' \| 'confirm' | 'confirm' |
1306
+
1307
+
1308
+ <AntdApiRef url="https://ant.design/components/popconfirm-cn/#api"></AntdApiRef>
1309
+
1310
+
1311
+ ## antd API
1312
+
1313
+ 通用属性参考:[通用属性](/docs/react/common-props)
1314
+
1315
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
1316
+ |--------|--------|--------|--------|--------|
1317
+ | cancelButtonProps | cancel 按钮 props | | - | |
1318
+ | cancelText | 取消按钮文字 | string | 取消 | |
1319
+ | disabled | 阻止点击 Popconfirm 子元素时弹出确认框 | boolean | false | |
1320
+ | icon | 自定义弹出气泡 Icon 图标 | ReactNode | | |
1321
+ | okButtonProps | ok 按钮 props | | - | |
1322
+ | okText | 确认按钮文字 | string | 确定 | |
1323
+ | okType | 确认按钮类型 | string | primary | |
1324
+ | showCancel | 是否显示取消按钮 | boolean | true | 4.18.0 |
1325
+ | title | 确认框标题 | ReactNode \| () => ReactNode | - | |
1326
+ | description | 确认内容的详细描述 | ReactNode \| () => ReactNode | - | 5.1.0 |
1327
+ | onCancel | 点击取消的回调 | function(e) | - | |
1328
+ | onConfirm | 点击确认的回调 | function(e) | - | |
1329
+ | onPopupClick | 弹出气泡点击事件 | function(e) | - | 5.5.0 |
1330
+
1331
+
1332
+ <!-- 共同的 API -->
1333
+ 以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
1334
+
1335
+ <!-- prettier-ignore -->
1336
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
1337
+ |--------|--------|--------|--------|--------|
1338
+ | align | 该值将合并到 placement 的配置中,设置参考 | object | - | |
1339
+ | arrow | 修改箭头的显示状态以及修改箭头是否指向目标元素中心 | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
1340
+ | autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true | |
1341
+ | color | 背景颜色 | string | - | 4.3.0 |
1342
+ | defaultOpen | 默认是否显隐 | boolean | false | 4.23.0 |
1343
+ | destroyOnHidden | 关闭后是否销毁 dom | boolean | false | 5.25.0 |
1344
+ | fresh | 默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新 | boolean | false | 5.10.0 |
1345
+ | getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
1346
+ | mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0.1 | |
1347
+ | mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 | |
1348
+ | placement | 气泡框位置,可选 | string | top | |
1349
+ | trigger | 触发行为,可选 | string \| string[] | hover | |
1350
+ | open | 用于手动控制浮层显隐,小于 4.23.0 使用 | boolean | false | 4.23.0 |
1351
+ | zIndex | 设置 Tooltip 的 | number | - | |
1352
+ | onOpenChange | 显示隐藏的回调 | (open: boolean) => void | - | 4.23.0 |
1353
+
1354
+
1355
+
1356
+
1300
1357
  <DemoTitle title="Pagination" desc="分页器用于分隔长列表,每次只加载一个页面。">
1301
1358
  ## API
1302
1359
 
@@ -1344,6 +1401,102 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
1344
1401
 
1345
1402
 
1346
1403
 
1404
+ <DemoTitle title="Notification" desc="用于指示任务的完成进度">
1405
+ #### API
1406
+
1407
+ <AntdApiRef url="https://ant.design/components/notification-cn/#api"></AntdApiRef>
1408
+
1409
+
1410
+ ## antd API
1411
+
1412
+ 通用属性参考:[通用属性](/docs/react/common-props)
1413
+
1414
+
1415
+ - `notification.success(config)`
1416
+ - `notification.error(config)`
1417
+ - `notification.info(config)`
1418
+ - `notification.warning(config)`
1419
+ - `notification.open(config)`
1420
+ - `notification.destroy(key?: String)`
1421
+
1422
+ config 参数如下:
1423
+
1424
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
1425
+ |--------|--------|--------|--------|--------|
1426
+ | actions | 自定义按钮组 | ReactNode | - | 5.24.0 |
1427
+ | className | 自定义 CSS class | string | - | - |
1428
+ | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1429
+ | description | 通知提醒内容,必选 | ReactNode | - | - |
1430
+ | duration | 默认 4.5 秒后自动关闭,配置为 null 则不自动关闭 | number | 4.5 | - |
1431
+ | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1432
+ | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1433
+ | icon | 自定义图标 | ReactNode | - | - |
1434
+ | key | 当前通知唯一标志 | string | - | - |
1435
+ | message | 通知提醒标题,必选 | ReactNode | - | - |
1436
+ | placement | 弹出位置,可选 | string | topRight | - |
1437
+ | style | 自定义内联样式 | | - | - |
1438
+ | role | 供屏幕阅读器识别的通知内容语义,默认为 | alert \| status | alert | 5.6.0 |
1439
+ | onClick | 点击通知时触发的回调函数 | function | - | - |
1440
+ | onClose | 当通知关闭时触发 | function | - | - |
1441
+ | props | 透传至通知 | Object | - | - |
1442
+
1443
+
1444
+
1445
+ - `notification.useNotification(config)`
1446
+
1447
+ config 参数如下:
1448
+
1449
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
1450
+ |--------|--------|--------|--------|--------|
1451
+ | bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
1452
+ | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1453
+ | getContainer | 配置渲染节点的输出位置 | () => HTMLNode | () => document.body | |
1454
+ | placement | 弹出位置,可选 | string | topRight | |
1455
+ | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1456
+ | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1457
+ | rtl | 是否开启 RTL 模式 | boolean | false | |
1458
+ | stack | 堆叠模式,超过阈值时会将所有消息收起 | boolean \| | { threshold: 3 } | 5.10.0 |
1459
+ | top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
1460
+ | maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
1461
+
1462
+
1463
+ ### 全局配置
1464
+
1465
+ 还提供了一个全局配置方法,在调用前提前配置,全局一次生效。
1466
+
1467
+ `notification.config(options)`
1468
+
1469
+ 当你使用 `ConfigProvider` 进行全局化配置时,系统会默认自动开启 RTL 模式。(4.3.0+)当你想单独使用,可通过如下设置开启 RTL 模式。
1470
+
1471
+
1472
+ ```js
1473
+ notification.config({
1474
+ placement: 'bottomRight',
1475
+ bottom: 50,
1476
+ duration: 3,
1477
+ rtl: true,
1478
+ });
1479
+ ```
1480
+
1481
+
1482
+ #### notification.config
1483
+
1484
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
1485
+ |--------|--------|--------|--------|--------|
1486
+ | bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
1487
+ | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1488
+ | duration | 默认自动关闭延时,单位秒 | number | 4.5 | |
1489
+ | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1490
+ | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1491
+ | getContainer | 配置渲染节点的输出位置,但依旧为全屏展示 | () => HTMLNode | () => document.body | |
1492
+ | placement | 弹出位置,可选 | string | topRight | |
1493
+ | rtl | 是否开启 RTL 模式 | boolean | false | |
1494
+ | top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
1495
+ | maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
1496
+
1497
+
1498
+
1499
+
1347
1500
  <DemoTitle title="Modal" desc="用于叠加当前页面上的对话框窗口,提供标题、内容区、操作区。">
1348
1501
  #### API
1349
1502
 
@@ -1614,15 +1767,10 @@ message.config({
1614
1767
 
1615
1768
 
1616
1769
 
1617
- <DemoTitle title="Popconfirm" desc="点击元素,弹出气泡式的确认框。">
1770
+ <DemoTitle title="InputNumber" desc="通过鼠标或键盘,输入范围内的数值。">
1618
1771
  #### API
1619
1772
 
1620
- | 属性名 | 描述 | 类型 | 默认值 |
1621
- |--------|--------|--------|--------|
1622
- | type | 类型 | 'info' \| 'warning' \| 'error' \| 'success' \| 'confirm' | 'confirm' |
1623
-
1624
-
1625
- <AntdApiRef url="https://ant.design/components/popconfirm-cn/#api"></AntdApiRef>
1773
+ <AntdApiRef url="https://ant.design/components/input-number-cn/#api"></AntdApiRef>
1626
1774
 
1627
1775
 
1628
1776
  ## antd API
@@ -1631,206 +1779,58 @@ message.config({
1631
1779
 
1632
1780
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
1633
1781
  |--------|--------|--------|--------|--------|
1634
- | cancelButtonProps | cancel 按钮 props | | - | |
1635
- | cancelText | 取消按钮文字 | string | 取消 | |
1636
- | disabled | 阻止点击 Popconfirm 子元素时弹出确认框 | boolean | false | |
1637
- | icon | 自定义弹出气泡 Icon 图标 | ReactNode | | |
1638
- | okButtonProps | ok 按钮 props | | - | |
1639
- | okText | 确认按钮文字 | string | 确定 | |
1640
- | okType | 确认按钮类型 | string | primary | |
1641
- | showCancel | 是否显示取消按钮 | boolean | true | 4.18.0 |
1642
- | title | 确认框标题 | ReactNode \| () => ReactNode | - | |
1643
- | description | 确认内容的详细描述 | ReactNode \| () => ReactNode | - | 5.1.0 |
1644
- | onCancel | 点击取消的回调 | function(e) | - | |
1645
- | onConfirm | 点击确认的回调 | function(e) | - | |
1646
- | onPopupClick | 弹出气泡点击事件 | function(e) | - | 5.5.0 |
1782
+ | addonAfter | 带标签的 input,设置后置标签 | ReactNode | - | 4.17.0 |
1783
+ | addonBefore | 带标签的 input,设置前置标签 | ReactNode | - | 4.17.0 |
1784
+ | autoFocus | 自动获取焦点 | boolean | false | - |
1785
+ | changeOnBlur | 是否在失去焦点时,触发 | boolean | true | 5.11.0 |
1786
+ | changeOnWheel | 允许鼠标滚轮改变数值 | boolean | - | 5.14.0 |
1787
+ | controls | 是否显示增减按钮,也可设置自定义箭头图标 | boolean \| { upIcon?: React.ReactNode; downIcon?: React.ReactNode; } | - | 4.19.0 |
1788
+ | decimalSeparator | 小数点 | string | - | - |
1789
+ | placeholder | 占位符 | string | - | |
1790
+ | defaultValue | 初始值 | number | - | - |
1791
+ | disabled | 禁用 | boolean | false | - |
1792
+ | formatter | 指定输入框展示值的格式 | function(value: number \| string, info: { userTyping: boolean, input: string }): string | - | info: 4.17.0 |
1793
+ | keyboard | 是否启用键盘快捷行为 | boolean | true | 4.12.0 |
1794
+ | max | 最大值 | number | | - |
1795
+ | min | 最小值 | number | | - |
1796
+ | parser | 指定从 | function(string): number | - | - |
1797
+ | precision | 数值精度,配置 | number | - | - |
1798
+ | readOnly | 只读 | boolean | false | - |
1799
+ | status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
1800
+ | prefix | 带有前缀图标的 input | ReactNode | - | 4.17.0 |
1801
+ | suffix | 带有后缀图标的 input | ReactNode | - | 5.20.0 |
1802
+ | size | 输入框大小 | large | - | - |
1803
+ | step | 每次改变步数,可以为小数 | number \| string | 1 | - |
1804
+ | stringMode | 字符值模式,开启后支持高精度小数。同时 | boolean | false | 4.13.0 |
1805
+ | value | 当前值 | number | - | - |
1806
+ | variant | 形态变体 | outlined | outlined | 5.13.0 \| |
1807
+ | onChange | 变化回调 | function(value: number \| string \| null) | - | - |
1808
+ | onPressEnter | 按下回车的回调 | function(e) | - | - |
1809
+ | onStep | 点击上下箭头的回调 | (value: number, info: { offset: number, type: 'up' \| 'down' }) => void | - | 4.7.0 |
1647
1810
 
1648
1811
 
1649
- <!-- 共同的 API -->
1650
- 以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
1812
+ ## Ref
1651
1813
 
1652
- <!-- prettier-ignore -->
1653
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
1654
- |--------|--------|--------|--------|--------|
1655
- | align | 该值将合并到 placement 的配置中,设置参考 | object | - | |
1656
- | arrow | 修改箭头的显示状态以及修改箭头是否指向目标元素中心 | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
1657
- | autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true | |
1658
- | color | 背景颜色 | string | - | 4.3.0 |
1659
- | defaultOpen | 默认是否显隐 | boolean | false | 4.23.0 |
1660
- | destroyOnHidden | 关闭后是否销毁 dom | boolean | false | 5.25.0 |
1661
- | fresh | 默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新 | boolean | false | 5.10.0 |
1662
- | getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
1663
- | mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0.1 | |
1664
- | mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 | |
1665
- | placement | 气泡框位置,可选 | string | top | |
1666
- | trigger | 触发行为,可选 | string \| string[] | hover | |
1667
- | open | 用于手动控制浮层显隐,小于 4.23.0 使用 | boolean | false | 4.23.0 |
1668
- | zIndex | 设置 Tooltip 的 | number | - | |
1669
- | onOpenChange | 显示隐藏的回调 | (open: boolean) => void | - | 4.23.0 |
1814
+ | 名称 | 说明 | 参数 | 版本 |
1815
+ |--------|--------|--------|--------|
1816
+ | blur() | 移除焦点 | - | |
1817
+ | focus() | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | cursor - 5.22.0 |
1818
+ | nativeElement | 获取原生 DOM 元素 | - | 5.17.3 |
1670
1819
 
1671
1820
 
1672
1821
 
1673
1822
 
1674
- <DemoTitle title="Notification" desc="用于指示任务的完成进度">
1823
+ <DemoTitle title="Image" desc="可预览的图片">
1675
1824
  #### API
1676
1825
 
1677
- <AntdApiRef url="https://ant.design/components/notification-cn/#api"></AntdApiRef>
1826
+ <AntdApiRef url="https://ant.design/components/image-cn/#api"></AntdApiRef>
1678
1827
 
1679
1828
 
1680
1829
  ## antd API
1681
1830
 
1682
1831
  通用属性参考:[通用属性](/docs/react/common-props)
1683
1832
 
1684
-
1685
- - `notification.success(config)`
1686
- - `notification.error(config)`
1687
- - `notification.info(config)`
1688
- - `notification.warning(config)`
1689
- - `notification.open(config)`
1690
- - `notification.destroy(key?: String)`
1691
-
1692
- config 参数如下:
1693
-
1694
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
1695
- |--------|--------|--------|--------|--------|
1696
- | actions | 自定义按钮组 | ReactNode | - | 5.24.0 |
1697
- | className | 自定义 CSS class | string | - | - |
1698
- | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1699
- | description | 通知提醒内容,必选 | ReactNode | - | - |
1700
- | duration | 默认 4.5 秒后自动关闭,配置为 null 则不自动关闭 | number | 4.5 | - |
1701
- | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1702
- | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1703
- | icon | 自定义图标 | ReactNode | - | - |
1704
- | key | 当前通知唯一标志 | string | - | - |
1705
- | message | 通知提醒标题,必选 | ReactNode | - | - |
1706
- | placement | 弹出位置,可选 | string | topRight | - |
1707
- | style | 自定义内联样式 | | - | - |
1708
- | role | 供屏幕阅读器识别的通知内容语义,默认为 | alert \| status | alert | 5.6.0 |
1709
- | onClick | 点击通知时触发的回调函数 | function | - | - |
1710
- | onClose | 当通知关闭时触发 | function | - | - |
1711
- | props | 透传至通知 | Object | - | - |
1712
-
1713
-
1714
-
1715
- - `notification.useNotification(config)`
1716
-
1717
- config 参数如下:
1718
-
1719
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
1720
- |--------|--------|--------|--------|--------|
1721
- | bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
1722
- | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1723
- | getContainer | 配置渲染节点的输出位置 | () => HTMLNode | () => document.body | |
1724
- | placement | 弹出位置,可选 | string | topRight | |
1725
- | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1726
- | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1727
- | rtl | 是否开启 RTL 模式 | boolean | false | |
1728
- | stack | 堆叠模式,超过阈值时会将所有消息收起 | boolean \| | { threshold: 3 } | 5.10.0 |
1729
- | top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
1730
- | maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
1731
-
1732
-
1733
- ### 全局配置
1734
-
1735
- 还提供了一个全局配置方法,在调用前提前配置,全局一次生效。
1736
-
1737
- `notification.config(options)`
1738
-
1739
- 当你使用 `ConfigProvider` 进行全局化配置时,系统会默认自动开启 RTL 模式。(4.3.0+)当你想单独使用,可通过如下设置开启 RTL 模式。
1740
-
1741
-
1742
- ```js
1743
- notification.config({
1744
- placement: 'bottomRight',
1745
- bottom: 50,
1746
- duration: 3,
1747
- rtl: true,
1748
- });
1749
- ```
1750
-
1751
-
1752
- #### notification.config
1753
-
1754
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
1755
- |--------|--------|--------|--------|--------|
1756
- | bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
1757
- | closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
1758
- | duration | 默认自动关闭延时,单位秒 | number | 4.5 | |
1759
- | showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
1760
- | pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
1761
- | getContainer | 配置渲染节点的输出位置,但依旧为全屏展示 | () => HTMLNode | () => document.body | |
1762
- | placement | 弹出位置,可选 | string | topRight | |
1763
- | rtl | 是否开启 RTL 模式 | boolean | false | |
1764
- | top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
1765
- | maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
1766
-
1767
-
1768
-
1769
-
1770
- <DemoTitle title="InputNumber" desc="通过鼠标或键盘,输入范围内的数值。">
1771
- #### API
1772
-
1773
- <AntdApiRef url="https://ant.design/components/input-number-cn/#api"></AntdApiRef>
1774
-
1775
-
1776
- ## antd API
1777
-
1778
- 通用属性参考:[通用属性](/docs/react/common-props)
1779
-
1780
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
1781
- |--------|--------|--------|--------|--------|
1782
- | addonAfter | 带标签的 input,设置后置标签 | ReactNode | - | 4.17.0 |
1783
- | addonBefore | 带标签的 input,设置前置标签 | ReactNode | - | 4.17.0 |
1784
- | autoFocus | 自动获取焦点 | boolean | false | - |
1785
- | changeOnBlur | 是否在失去焦点时,触发 | boolean | true | 5.11.0 |
1786
- | changeOnWheel | 允许鼠标滚轮改变数值 | boolean | - | 5.14.0 |
1787
- | controls | 是否显示增减按钮,也可设置自定义箭头图标 | boolean \| { upIcon?: React.ReactNode; downIcon?: React.ReactNode; } | - | 4.19.0 |
1788
- | decimalSeparator | 小数点 | string | - | - |
1789
- | placeholder | 占位符 | string | - | |
1790
- | defaultValue | 初始值 | number | - | - |
1791
- | disabled | 禁用 | boolean | false | - |
1792
- | formatter | 指定输入框展示值的格式 | function(value: number \| string, info: { userTyping: boolean, input: string }): string | - | info: 4.17.0 |
1793
- | keyboard | 是否启用键盘快捷行为 | boolean | true | 4.12.0 |
1794
- | max | 最大值 | number | | - |
1795
- | min | 最小值 | number | | - |
1796
- | parser | 指定从 | function(string): number | - | - |
1797
- | precision | 数值精度,配置 | number | - | - |
1798
- | readOnly | 只读 | boolean | false | - |
1799
- | status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
1800
- | prefix | 带有前缀图标的 input | ReactNode | - | 4.17.0 |
1801
- | suffix | 带有后缀图标的 input | ReactNode | - | 5.20.0 |
1802
- | size | 输入框大小 | large | - | - |
1803
- | step | 每次改变步数,可以为小数 | number \| string | 1 | - |
1804
- | stringMode | 字符值模式,开启后支持高精度小数。同时 | boolean | false | 4.13.0 |
1805
- | value | 当前值 | number | - | - |
1806
- | variant | 形态变体 | outlined | outlined | 5.13.0 \| |
1807
- | onChange | 变化回调 | function(value: number \| string \| null) | - | - |
1808
- | onPressEnter | 按下回车的回调 | function(e) | - | - |
1809
- | onStep | 点击上下箭头的回调 | (value: number, info: { offset: number, type: 'up' \| 'down' }) => void | - | 4.7.0 |
1810
-
1811
-
1812
- ## Ref
1813
-
1814
- | 名称 | 说明 | 参数 | 版本 |
1815
- |--------|--------|--------|--------|
1816
- | blur() | 移除焦点 | - | |
1817
- | focus() | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | cursor - 5.22.0 |
1818
- | nativeElement | 获取原生 DOM 元素 | - | 5.17.3 |
1819
-
1820
-
1821
-
1822
-
1823
- <DemoTitle title="Image" desc="可预览的图片">
1824
- #### API
1825
-
1826
- <AntdApiRef url="https://ant.design/components/image-cn/#api"></AntdApiRef>
1827
-
1828
-
1829
- ## antd API
1830
-
1831
- 通用属性参考:[通用属性](/docs/react/common-props)
1832
-
1833
- ### Image
1833
+ ### Image
1834
1834
 
1835
1835
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
1836
1836
  |--------|--------|--------|--------|--------|
@@ -2168,1213 +2168,1155 @@ type PresetColors = 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' |
2168
2168
 
2169
2169
 
2170
2170
 
2171
- <DemoTitle title="Form" desc="高性能表单控件,自带数据域管理。包含数据录入、校验以及对应样式。">
2171
+ <DemoTitle title="Empty" desc="用于空状态的占位图形展示。">
2172
+ ## API
2173
+
2174
+ | 属性名 | 描述 | 类型 | 默认值 |
2175
+ |--------|--------|--------|--------|
2176
+ | type | 空状态类型 | \| 'noData'
2177
+ \| 'networkError'
2178
+ \| '404'
2179
+ \| 'arrears'
2180
+ \| 'desktopOnly'
2181
+ \| 'noAudio'
2182
+ \| 'noImage'
2183
+ \| 'noVideo'
2184
+ \| 'noAccess'
2185
+ \| 'error'
2186
+ \| 'noChat'
2187
+ \| 'noModel'
2188
+ \| 'noApp'
2189
+ \| 'success'
2190
+ \| 'failed'
2191
+ \| 'inProgress'
2192
+ \| 'stayTuned' | 'noData' |
2193
+ | texture | 是否显示纹理 | boolean | true |
2194
+ | image | 图片地址 | string | 默认是no data的图片 |
2195
+ | imageStyle | 图片样式 | React.CSSProperties | |
2196
+ | title | 标题内容 | React.ReactNode | |
2197
+ | description | 自定义描述内容 | React.ReactNode | |
2198
+ | onOk | ok按钮的点击事件 | (e: React.MouseEvent) => void | |
2199
+ | okText | ok按钮的文本 | React.ReactNode | |
2200
+ | okType | ok按钮的类型 | SparkButtonProps['type'] | 'primary' |
2201
+ | okButtonProps | ok按钮的props | SparkButtonProps | |
2202
+ | children | 自定义空状态的内容 | React.ReactNode | |
2203
+ | className | 自定义空状态的类名 | string | |
2204
+ | style | 自定义空状态的样式 | React.CSSProperties | |
2205
+ | size | 自定义空状态的大小 | React.CSSProperties['width'] | |
2206
+ | autoFit | 是否自适应容器宽度,当容器宽度小于 size 时自动缩放 | boolean | false |
2207
+
2208
+
2209
+ <AntdApiRef url="https://ant.design/components/empty-cn/#api"></AntdApiRef>
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+ <DemoTitle title="FloatButton" desc="用于网站上的全局功能;无论浏览到何处都可以看见的按钮。">
2172
2216
  #### API
2173
2217
 
2174
- <AntdApiRef url="https://ant.design/components/form-cn/#api"></AntdApiRef>
2218
+ <AntdApiRef url="https://ant.design/components/float-button-cn/#api"></AntdApiRef>
2175
2219
 
2176
2220
 
2177
2221
  ## antd API
2178
2222
 
2179
2223
  通用属性参考:[通用属性](/docs/react/common-props)
2180
2224
 
2181
- ### Form
2225
+ `antd@5.0.0` 版本开始提供该组件。
2226
+
2227
+ ### 共同的 API
2182
2228
 
2183
2229
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2184
2230
  |--------|--------|--------|--------|--------|
2185
- | colon | 配置 Form.Item 的 | boolean | true | |
2186
- | disabled | 设置表单组件禁用,仅对 antd 组件有效 | boolean | false | 4.21.0 |
2187
- | component | 设置 Form 渲染元素,为 | ComponentType \| false | form | |
2188
- | fields | 通过状态管理(如 redux)控制表单字段,如非强需求不推荐使用。查看 | | - | |
2189
- | form | | | - | |
2190
- | feedbackIcons | | | - | 5.9.0 |
2191
- | initialValues | 表单默认值,只有初始化以及重置时生效 | object | - | |
2192
- | labelAlign | label 标签的文本对齐方式 | left | right | |
2193
- | labelWrap | label 标签的文本换行方式 | boolean | false | 4.18.0 |
2194
- | labelCol | label 标签布局,同 | | - | |
2195
- | layout | 表单布局 | horizontal | horizontal | |
2196
- | name | 表单名称,会作为表单字段 | string | - | |
2197
- | preserve | 当字段被删除时保留字段值。你可以通过 | boolean | true | 4.4.0 |
2198
- | requiredMark | 必选样式,可以切换为必选或者可选展示样式。此为 Form 配置,Form.Item 无法单独配置 | boolean \| | true | renderProps |
2199
- | scrollToFirstError | 提交失败自动滚动到第一个错误字段 | boolean \| | false | focus: 5.24.0 |
2200
- | size | 设置字段组件的尺寸(仅限 antd 组件) | small | - | |
2201
- | validateMessages | 验证提示模板,说明 | | - | |
2202
- | validateTrigger | 统一设置字段触发验证的时机 | string \| string[] | onChange | 4.3.0 |
2203
- | variant | 表单内控件变体 | outlined | outlined | 5.13.0 \| |
2204
- | wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol | | - | |
2205
- | onFieldsChange | 字段更新时触发回调事件 | function(changedFields, allFields) | - | |
2206
- | onFinish | 提交表单且数据验证成功后回调事件 | function(values) | - | |
2207
- | onFinishFailed | 提交表单且数据验证失败后回调事件 | function({ values, errorFields, outOfDate }) | - | |
2208
- | onValuesChange | 字段值更新时触发回调事件 | function(changedValues, allValues) | - | |
2209
- | clearOnDestroy | 当表单被卸载时清空表单值 | boolean | false | 5.18.0 |
2231
+ | icon | 自定义图标 | ReactNode | - | |
2232
+ | description | 文字及其它内容 | ReactNode | - | |
2233
+ | tooltip | 气泡卡片的内容 | ReactNode \| | - | TooltipProps: 5.25.0 |
2234
+ | type | 设置按钮类型 | default | default | |
2235
+ | shape | 设置按钮形状 | circle | circle | |
2236
+ | onClick | 点击按钮时的回调 | (event) => void | - | |
2237
+ | href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
2238
+ | target | 相当于 a 标签的 target 属性,href 存在时生效 | string | - | |
2239
+ | htmlType | 设置 | submit | button | 5.21.0 |
2240
+ | badge | 带徽标数字的悬浮按钮(不支持 | | - | 5.4.0 |
2210
2241
 
2211
2242
 
2212
- 支持原生 form 除 `onSubmit` 外的所有属性。
2243
+ ### FloatButton.Group
2213
2244
 
2214
- ### validateMessages
2245
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2246
+ |--------|--------|--------|--------|--------|
2247
+ | shape | 设置包含的 FloatButton 按钮形状 | circle | circle | |
2248
+ | trigger | 触发方式(有触发方式为菜单模式) | click | - | |
2249
+ | open | 受控展开,需配合 trigger 一起使用 | boolean | - | |
2250
+ | closeIcon | 自定义关闭按钮 | React.ReactNode | | |
2251
+ | placement | 自定义菜单弹出位置 | top | top | 5.21.0 |
2252
+ | onOpenChange | 展开收起时的回调,需配合 trigger 一起使用 | (open: boolean) => void | - | |
2253
+ | onClick | 点击按钮时的回调(仅在菜单模式中有效) | (event) => void | - | 5.3.0 |
2215
2254
 
2216
- Form 为验证提供了[默认的错误提示信息](https://github.com/ant-design/ant-design/blob/6234509d18bac1ac60fbb3f92a5b2c6a6361295a/components/locale/en_US.ts#L88-L134),你可以通过配置 `validateMessages` 属性,修改对应的提示模板。一种常见的使用方式,是配置国际化提示信息:
2217
2255
 
2256
+ ### FloatButton.BackTop
2218
2257
 
2219
- ```jsx
2220
- const validateMessages = {
2221
- required: "'${name}' 是必选字段",
2222
- // ...
2223
- };
2258
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2259
+ |--------|--------|--------|--------|--------|
2260
+ | duration | 回到顶部所需时间(ms) | number | 450 | |
2261
+ | target | 设置需要监听其滚动事件的元素 | () => HTMLElement | () => window | |
2262
+ | visibilityHeight | 滚动高度达到此参数值才出现 BackTop | number | 400 | |
2263
+ | onClick | 点击按钮的回调函数 | () => void | - | |
2224
2264
 
2225
- <Form validateMessages={validateMessages} />;
2226
- ```
2227
2265
 
2228
2266
 
2229
- 此外,[ConfigProvider](/components/config-provider-cn) 也提供了全局化配置方案,允许统一配置错误提示模板:
2230
2267
 
2268
+ <DemoTitle title="Dropdown" desc="向下弹出的列表。">
2269
+ #### API
2231
2270
 
2232
- ```jsx
2233
- const validateMessages = {
2234
- required: "'${name}' 是必选字段",
2235
- // ...
2236
- };
2271
+ <AntdApiRef url="https://ant.design/components/dropdown-cn/#api"></AntdApiRef>
2237
2272
 
2238
- <ConfigProvider form={{ validateMessages }}>
2239
- <Form />
2240
- </ConfigProvider>;
2241
- ```
2242
2273
 
2274
+ ## antd API
2243
2275
 
2244
- ## Form.Item
2276
+ 通用属性参考:[通用属性](/docs/react/common-props)
2245
2277
 
2246
- 表单字段组件,用于数据双向绑定、校验、布局等。
2278
+ ### Dropdown
2247
2279
 
2248
2280
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2249
2281
  |--------|--------|--------|--------|--------|
2250
- | colon | 配合 | boolean | true | |
2251
- | dependencies | 设置依赖字段,说明 | | - | |
2252
- | extra | 额外的提示信息,和 | ReactNode | - | |
2253
- | getValueFromEvent | 设置如何将 event 的值转换成字段值 | (..args: any[]) => any | - | |
2254
- | getValueProps | 为子元素添加额外的属性 (不建议通过 | (value: any) => Record | - | 4.2.0 |
2255
- | hasFeedback | 配合 | boolean \| { icons: | false | icons: 5.9.0 |
2256
- | help | 提示信息,如不设置,则会根据校验规则自动生成 | ReactNode | - | |
2257
- | hidden | 是否隐藏字段(依然会收集和校验字段) | boolean | false | 4.4.0 |
2258
- | htmlFor | 设置子元素 label | string | - | |
2259
- | initialValue | 设置子元素默认值,如果与 Form 的 | string | - | 4.2.0 |
2260
- | label | label | ReactNode | - | null: 5.22.0 |
2261
- | labelAlign | 标签文本对齐方式 | left | right | |
2262
- | labelCol | label | | - | |
2263
- | messageVariables | 默认验证字段的信息,查看 | Record | - | 4.7.0 |
2264
- | name | 字段名,支持数组 | | - | |
2265
- | normalize | 组件获取值后进行转换,再放入 Form 中。不支持异步 | (value, prevValue, prevValues) => any | - | |
2266
- | noStyle | 为 | boolean | false | |
2267
- | preserve | 当字段被删除时保留字段值 | boolean | true | 4.4.0 |
2268
- | required | 必填样式设置。如不设置,则会根据校验规则自动生成 | boolean | false | |
2269
- | rules | 校验规则,设置字段的校验逻辑。点击 | | - | |
2270
- | shouldUpdate | 自定义字段更新逻辑,说明 | boolean \| (prevValue, curValue) => boolean | false | |
2271
- | tooltip | 配置提示信息 | ReactNode \| | - | 4.7.0 |
2272
- | trigger | 设置收集字段值变更的时机。点击 | string | onChange | |
2273
- | validateFirst | 当某一规则校验不通过时,是否停止剩下的规则的校验。设置 | boolean \| | false | parallel |
2274
- | validateDebounce | 设置防抖,延迟毫秒数后进行校验 | number | - | 5.9.0 |
2275
- | validateStatus | 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' | string | - | |
2276
- | validateTrigger | 设置字段校验的时机 | string \| string[] | onChange | |
2277
- | valuePropName | 子节点的值的属性。注意:Switch、Checkbox 的 valuePropName 应该是 | string | value | |
2278
- | wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 | | - | |
2279
- | layout | 表单项布局 | horizontal | - | 5.18.0 |
2280
-
2281
-
2282
- 被设置了 `name` 属性的 `Form.Item` 包装的控件,表单控件会自动添加 `value`(或 `valuePropName` 指定的其他属性) `onChange`(或 `trigger` 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:
2283
-
2282
+ | arrow | 下拉框箭头是否显示 | boolean \| { pointAtCenter: boolean } | false | |
2283
+ | autoAdjustOverflow | 下拉框被遮挡时自动调整位置 | boolean | true | 5.2.0 |
2284
+ | autoFocus | 打开后自动聚焦下拉框 | boolean | false | 4.21.0 |
2285
+ | disabled | 菜单是否禁用 | boolean | - | |
2286
+ | destroyOnHidden | 关闭后是否销毁 Dropdown | boolean | false | 5.25.0 |
2287
+ | popupRender | 自定义弹出框内容 | (menus: ReactNode) => ReactNode | - | 5.25.0 |
2288
+ | getPopupContainer | 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
2289
+ | menu | 菜单配置项 | | - | 4.24.0 |
2290
+ | overlayClassName | 下拉根元素的类名称 | string | - | |
2291
+ | overlayStyle | 下拉根元素的样式 | CSSProperties | - | |
2292
+ | placement | 菜单弹出位置: | string | bottomLeft | |
2293
+ | trigger | 触发下拉的行为,移动端不支持 hover | Array< | [ | |
2294
+ | open | 菜单是否显示,小于 4.23.0 使用 | boolean | - | 4.23.0 |
2295
+ | onOpenChange | 菜单显示状态改变时调用,点击菜单按钮导致的消失不会触发。小于 4.23.0 使用 | (open: boolean, info: { source: 'trigger' \| 'menu' }) => void | - | info.source |
2284
2296
 
2285
- 1. 你**不再需要也不应该**用 `onChange` 来做数据收集同步(你可以使用 Form 的 `onValuesChange`),但还是可以继续监听 `onChange` 事件。
2286
- 2. 你不能用控件的 `value` 或 `defaultValue` 等属性来设置表单域的值,默认值可以用 Form 里的 `initialValues` 来设置。注意 `initialValues` 不能被 `setState` 动态更新,你需要用 `setFieldsValue` 来更新。
2287
- 3. 你不应该用 `setState`,可以使用 `form.setFieldsValue` 来动态改变表单值。
2288
2297
 
2289
- ### dependencies
2298
+ ### Dropdown.Button
2290
2299
 
2291
- 当字段间存在依赖关系时使用。如果一个字段设置了 `dependencies` 属性。那么它所依赖的字段更新时,该字段将自动触发更新与校验。一种常见的场景,就是注册用户表单的“密码”与“确认密码”字段。“确认密码”校验依赖于“密码”字段,设置 `dependencies` 后,“密码”字段更新会重新触发“校验密码”的校验逻辑。你可以参考[具体例子](#form-demo-dependencies)。
2300
+ 属性与 Dropdown 的相同。还包含以下属性:
2292
2301
 
2293
- `dependencies` 不应和 `shouldUpdate` 一起使用,因为这可能带来更新逻辑的混乱。
2302
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2303
+ |--------|--------|--------|--------|--------|
2304
+ | buttonsRender | 自定义左右两个按钮 | (buttons: ReactNode[]) => ReactNode[] | - | |
2305
+ | loading | 设置按钮载入状态,和 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
2306
+ | danger | 设置危险按钮 | boolean | - | 4.23.0 |
2307
+ | icon | 右侧的 icon | ReactNode | - | |
2308
+ | size | 按钮大小,和 | large | middle | |
2309
+ | type | 按钮类型,和 | primary | default | |
2310
+ | onClick | 点击左侧按钮的回调,和 | (event: React.MouseEvent) => void | - | |
2294
2311
 
2295
- ### FeedbackIcons
2296
2312
 
2297
- `({ status: ValidateStatus, errors: ReactNode, warnings: ReactNode }) => Record<ValidateStatus, ReactNode>`
2313
+ ## 注意
2298
2314
 
2299
- ### shouldUpdate
2315
+ 请确保 `Dropdown` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onFocus`、`onClick` 事件。
2316
+ ## antd API
2300
2317
 
2301
- Form 通过增量更新方式,只更新被修改的字段相关组件以达到性能优化目的。大部分场景下,你只需要编写代码或者与 [`dependencies`](#dependencies) 属性配合校验即可。而在某些特定场景,例如修改某个字段值后出现新的字段选项、或者纯粹希望表单任意变化都对某一个区域进行渲染。你可以通过 `shouldUpdate` 修改 Form.Item 的更新逻辑。
2318
+ ### Menu
2302
2319
 
2303
- `shouldUpdate` `true` 时,Form 的任意变化都会使该 Form.Item 重新渲染。这对于自定义渲染一些区域十分有帮助,要注意 Form.Item 里包裹的子组件必须由函数返回,否则 `shouldUpdate` 不会起作用:
2320
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2321
+ |--------|--------|--------|--------|--------|
2322
+ | defaultOpenKeys | 初始展开的 SubMenu 菜单项 key 数组 | string[] | - | |
2323
+ | defaultSelectedKeys | 初始选中的菜单项 key 数组 | string[] | - | |
2324
+ | expandIcon | 自定义展开图标 | ReactNode \| | - | 4.9.0 |
2325
+ | forceSubMenuRender | 在子菜单展示之前就渲染进 DOM | boolean | false | |
2326
+ | inlineCollapsed | inline 时菜单是否收起状态 | boolean | - | |
2327
+ | inlineIndent | inline 模式的菜单缩进宽度 | number | 24 | |
2328
+ | items | 菜单内容 | | - | 4.20.0 |
2329
+ | mode | 菜单类型,现在支持垂直、水平、和内嵌模式三种 | vertical | vertical | |
2330
+ | multiple | 是否允许多选 | boolean | false | |
2331
+ | openKeys | 当前展开的 SubMenu 菜单项 key 数组 | string[] | - | |
2332
+ | overflowedIndicator | 用于自定义 Menu 水平空间不足时的省略收缩的图标 | ReactNode | | |
2333
+ | selectable | 是否允许选中 | boolean | true | |
2334
+ | selectedKeys | 当前选中的菜单项 key 数组 | string[] | - | |
2335
+ | style | 根节点样式 | CSSProperties | - | |
2336
+ | subMenuCloseDelay | 用户鼠标离开子菜单后关闭延时,单位:秒 | number | 0.1 | |
2337
+ | subMenuOpenDelay | 用户鼠标进入子菜单后开启延时,单位:秒 | number | 0 | |
2338
+ | theme | 主题颜色 | light | light | |
2339
+ | triggerSubMenuAction | SubMenu 展开/关闭的触发行为 | hover | hover | |
2340
+ | onClick | 点击 MenuItem 调用此函数 | function({ item, key, keyPath, domEvent }) | - | |
2341
+ | onDeselect | 取消选中时调用,仅在 multiple 生效 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
2342
+ | onOpenChange | SubMenu 展开/关闭的回调 | function(openKeys: string[]) | - | |
2343
+ | onSelect | 被选中时调用 | function({ item, key, keyPath, selectedKeys, domEvent }) | -   | |
2304
2344
 
2305
- 相关issue:[#34500](https://github.com/ant-design/ant-design/issues/34500)
2306
2345
 
2346
+ 更多属性查看 [rc-menu](https://github.com/react-component/menu#api)
2307
2347
 
2308
- ```jsx
2309
- <Form.Item shouldUpdate>
2310
- {() => {
2311
- return <pre>{JSON.stringify(form.getFieldsValue(), null, 2)}</pre>;
2312
- }}
2313
- </Form.Item>
2314
- ```
2348
+ ### ItemType
2315
2349
 
2350
+ type ItemType = [MenuItemType](#menuitemtype) | [SubMenuType](#submenutype) | [MenuItemGroupType](#menuitemgrouptype) | [MenuDividerType](#menudividertype);
2316
2351
 
2317
- 你可以参考[示例](#form-demo-inline-login)查看具体使用场景。
2352
+ #### MenuItemType
2318
2353
 
2319
- `shouldUpdate` 为方法时,表单的每次数值更新都会调用该方法,提供原先的值与当前的值以供你比较是否需要更新。这对于是否根据值来渲染额外字段十分有帮助:
2354
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2355
+ |--------|--------|--------|--------|--------|
2356
+ | danger | 展示错误状态样式 | boolean | false | |
2357
+ | disabled | 是否禁用 | boolean | false | |
2358
+ | extra | 额外节点 | ReactNode | - | 5.21.0 |
2359
+ | icon | 菜单图标 | ReactNode | - | |
2360
+ | key | item 的唯一标志 | string | - | |
2361
+ | label | 菜单项标题 | ReactNode | - | |
2362
+ | title | 设置收缩时展示的悬浮标题 | string | - | |
2320
2363
 
2321
2364
 
2322
- ```jsx
2323
- <Form.Item shouldUpdate={(prevValues, curValues) => prevValues.additional !== curValues.additional}>
2324
- {() => {
2325
- return (
2326
- <Form.Item name="other">
2327
- <Input />
2328
- </Form.Item>
2329
- );
2330
- }}
2331
- </Form.Item>
2332
- ```
2365
+ #### SubMenuType
2333
2366
 
2367
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2368
+ |--------|--------|--------|--------|--------|
2369
+ | children | 子菜单的菜单项 | | - | |
2370
+ | disabled | 是否禁用 | boolean | false | |
2371
+ | icon | 菜单图标 | ReactNode | - | |
2372
+ | key | 唯一标志 | string | - | |
2373
+ | label | 菜单项标题 | ReactNode | - | |
2374
+ | popupClassName | 子菜单样式, | string | - | |
2375
+ | popupOffset | 子菜单偏移量, | [number, number] | - | |
2376
+ | onTitleClick | 点击子菜单标题 | function({ key, domEvent }) | - | |
2377
+ | theme | 设置子菜单的主题,默认从 Menu 上继承 | light | - | |
2334
2378
 
2335
- 你可以参考[示例](#form-demo-control-hooks)查看具体使用场景。
2336
2379
 
2337
- ### messageVariables
2380
+ #### MenuItemGroupType
2338
2381
 
2339
- 你可以通过 `messageVariables` 修改 Form.Item 的默认验证信息。
2382
+ 定义类型为 `group` 时,会作为分组处理:
2340
2383
 
2341
2384
 
2342
- ```jsx
2343
- <Form>
2344
- <Form.Item
2345
- messageVariables={{ another: 'good' }}
2346
- label="user"
2347
- rules={[{ required: true, message: '${another} is required' }]}
2348
- >
2349
- <Input />
2350
- </Form.Item>
2351
- <Form.Item
2352
- messageVariables={{ label: 'good' }}
2353
- label={<span>user</span>}
2354
- rules={[{ required: true, message: '${label} is required' }]}
2355
- >
2356
- <Input />
2357
- </Form.Item>
2358
- </Form>
2385
+ ```ts
2386
+ const groupItem = {
2387
+ type: 'group', // Must have
2388
+ label: 'My Group',
2389
+ children: [],
2390
+ };
2359
2391
  ```
2360
2392
 
2361
2393
 
2362
- `5.20.2` 起,当你希望不要转译 `${}` 时,你可以通过 `\\${}` 来略过:
2394
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2395
+ |--------|--------|--------|--------|--------|
2396
+ | children | 分组的菜单项 | | - | |
2397
+ | label | 分组标题 | ReactNode | - | |
2363
2398
 
2364
2399
 
2365
- ```jsx
2366
- { required: true, message: '${label} is convert, \\${label} is not convert' }
2400
+ #### MenuDividerType
2367
2401
 
2368
- // good is convert, ${label} is not convert
2369
- ```
2402
+ 菜单项分割线,只用在弹出菜单内,需要定义类型为 `divider`:
2370
2403
 
2371
2404
 
2372
- ## Form.List
2405
+ ```ts
2406
+ const dividerItem = {
2407
+ type: 'divider', // Must have
2408
+ };
2409
+ ```
2373
2410
 
2374
- 为字段提供数组化管理。
2375
2411
 
2376
2412
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2377
2413
  |--------|--------|--------|--------|--------|
2378
- | children | 渲染函数 | (fields: Field[], operation: { add, remove, move }, meta: { errors }) => React.ReactNode | - | |
2379
- | initialValue | 设置子元素默认值,如果与 Form 的 | any[] | - | 4.9.0 |
2380
- | name | 字段名,支持数组。List 本身也是字段,因而 | | - | |
2381
- | rules | 校验规则,仅支持自定义规则。需要配合 | { validator, message }[] | - | 4.7.0 |
2414
+ | dashed | 是否虚线 | boolean | false | |
2382
2415
 
2383
2416
 
2384
2417
 
2385
- ```tsx
2386
- <Form.List>
2387
- {(fields) =>
2388
- fields.map((field) => (
2389
- <Form.Item {...field}>
2390
- <Input />
2391
- </Form.Item>
2392
- ))
2393
- }
2394
- </Form.List>
2395
- ```
2396
2418
 
2419
+ <DemoTitle title="Descriptions" desc="展示多个只读字段的组合">
2420
+ #### API
2397
2421
 
2398
- 注意:Form.List 下的字段不应该配置 `initialValue`,你始终应该通过 Form.List 的 `initialValue` 或者 Form 的 `initialValues` 来配置。
2422
+ <AntdApiRef url="https://ant.design/components/descriptions-cn/#api"></AntdApiRef>
2399
2423
 
2400
- ## operation
2401
2424
 
2402
- Form.List 渲染表单相关操作函数。
2425
+ ## antd API
2426
+
2427
+ 通用属性参考:[通用属性](/docs/react/common-props)
2428
+
2429
+ ### Descriptions
2403
2430
 
2404
2431
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2405
2432
  |--------|--------|--------|--------|--------|
2406
- | add | 新增表单项 | (defaultValue?: any, insertIndex?: number) => void | insertIndex | 4.6.0 |
2407
- | move | 移动表单项 | (from: number, to: number) => void | - | |
2408
- | remove | 删除表单项 | (index: number \| number[]) => void | number[] | 4.5.0 |
2433
+ | bordered | 是否展示边框 | boolean | false | |
2434
+ | colon | 配置 | boolean | true | |
2435
+ | column | 一行的 | number \| | 3 | |
2436
+ | extra | 描述列表的操作区域,显示在右上方 | ReactNode | - | 4.5.0 |
2437
+ | items | 描述列表项内容 | | - | 5.8.0 |
2438
+ | layout | 描述布局 | horizontal | horizontal | |
2439
+ | size | 设置列表的大小。可以设置为 | default | - | |
2440
+ | title | 描述列表的标题,显示在最顶部 | ReactNode | - | |
2441
+ | classNames | 语义化结构 class | | - | 5.23.0 |
2442
+ | styles | 语义化结构 style | | - | 5.23.0 |
2409
2443
 
2410
2444
 
2411
- ## Form.ErrorList
2445
+ ### DescriptionItem
2412
2446
 
2413
- 4.7.0 新增。错误展示组件,仅限配合 Form.List rules 一同使用。参考[示例](#form-demo-dynamic-form-item)。
2447
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2448
+ |--------|--------|--------|--------|--------|
2449
+ | label | 内容的描述 | ReactNode | - | |
2450
+ | span | 包含列的数量( | number\| | 1 | screens: 5.9.0 |
2414
2451
 
2415
- | 参数 | 说明 | 类型 | 默认值 |
2416
- |--------|--------|--------|--------|
2417
- | errors | 错误列表 | ReactNode[] | - |
2418
2452
 
2453
+ span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度。当同时配置 `style` 和 `labelStyle`(或 `contentStyle`)时,两者会同时作用。样式冲突时,后者会覆盖前者。
2419
2454
 
2420
- ## Form.Provider
2421
2455
 
2422
- 提供表单间联动功能,其下设置 `name` 的 Form 更新时,会自动触发对应事件。查看[示例](#form-demo-form-context)。
2423
2456
 
2424
- | 参数 | 说明 | 类型 | 默认值 |
2425
- |--------|--------|--------|--------|
2426
- | onFormChange | 子表单字段更新时触发 | function(formName: string, info: { changedFields, forms }) | - |
2427
- | onFormFinish | 子表单提交时触发 | function(formName: string, info: { values, forms }) | - |
2428
-
2429
-
2430
-
2431
- ```jsx
2432
- <Form.Provider
2433
- onFormFinish={(name) => {
2434
- if (name === 'form1') {
2435
- // Do something...
2436
- }
2437
- }}
2438
- >
2439
- <Form name="form1">...</Form>
2440
- <Form name="form2">...</Form>
2441
- </Form.Provider>
2442
- ```
2443
-
2444
-
2445
- ### FormInstance
2457
+ <DemoTitle title="Drawer" desc="从页面一侧滑入的操作面板,用于承载临时界面内容。">
2458
+ #### API
2446
2459
 
2447
- | 名称 | 说明 | 类型 | 版本 |
2460
+ | 属性名 | 描述 | 类型 | 默认值 |
2448
2461
  |--------|--------|--------|--------|
2449
- | getFieldError | 获取对应字段名的错误信息 | (name: | |
2450
- | getFieldInstance | 获取对应字段实例 | (name: | 4.4.0 |
2451
- | getFieldsError | 获取一组字段名对应的错误信息,返回为数组形式 | (nameList?: | |
2452
- | getFieldsValue | 获取一组字段名对应的值,会按照对应结构返回。默认返回现存字段值,当调用 | | |
2453
- | getFieldValue | 获取对应字段名的值 | (name: | |
2454
- | isFieldsTouched | 检查一组字段是否被用户操作过, | (nameList?: | |
2455
- | isFieldTouched | 检查对应字段是否被用户操作过 | (name: | |
2456
- | isFieldValidating | 检查对应字段是否正在校验 | (name: | |
2457
- | resetFields | 重置一组字段到 | (fields?: | |
2458
- | scrollToField | 滚动到对应字段位置 | (name: | focus: 5.24.0 |
2459
- | setFields | 设置一组字段状态 | (fields: | |
2460
- | setFieldValue | 设置表单的值(该值将直接传入 form store 中并且 | (name: | 4.22.0 |
2461
- | setFieldsValue | 设置表单的值(该值将直接传入 form store 中并且 | (values) => void | |
2462
- | submit | 提交表单,与点击 | () => void | |
2463
- | validateFields | 触发表单验证,设置 | (nameList?: | |
2464
-
2465
-
2466
- #### validateFields
2467
-
2468
-
2469
- ```tsx
2470
- export interface ValidateConfig {
2471
- // 5.5.0 新增。仅校验内容而不会将错误信息展示到 UI 上。
2472
- validateOnly?: boolean;
2473
- // 5.9.0 新增。对提供的 `nameList` 与其子路径进行递归校验。
2474
- recursive?: boolean;
2475
- // 5.11.0 新增。校验 dirty 的字段(touched + validated)。
2476
- // 使用 `dirty` 可以很方便的仅校验用户操作过和被校验过的字段。
2477
- dirty?: boolean;
2478
- }
2479
- ```
2480
-
2481
-
2482
- 返回示例:
2483
-
2484
-
2485
- ```jsx
2486
- validateFields()
2487
- .then((values) => {
2488
- /*
2489
- values:
2490
- {
2491
- username: 'username',
2492
- password: 'password',
2493
- }
2494
- */
2495
- })
2496
- .catch((errorInfo) => {
2497
- /*
2498
- errorInfo:
2499
- {
2500
- values: {
2501
- username: 'username',
2502
- password: 'password',
2503
- },
2504
- errorFields: [
2505
- { name: ['password'], errors: ['Please input your Password!'] },
2506
- ],
2507
- outOfDate: false,
2508
- }
2509
- */
2510
- });
2511
- ```
2512
-
2513
-
2514
- ## Hooks
2515
-
2516
- ### Form.useForm
2517
-
2518
- `type Form.useForm = (): [FormInstance]`
2519
-
2520
- 创建 Form 实例,用于管理所有数据状态。
2521
-
2522
- ### Form.useFormInstance
2523
-
2524
- `type Form.useFormInstance = (): FormInstance`
2525
-
2526
- `4.20.0` 新增,获取当前上下文正在使用的 Form 实例,常见于封装子组件消费无需透传 Form 实例:
2527
-
2528
-
2529
- ```tsx
2530
- const Sub = () => {
2531
- const form = Form.useFormInstance();
2462
+ | showDivider | 是否显示分割线 | boolean | true |
2532
2463
 
2533
- return <Button onClick={() => form.setFieldsValue({})} />;
2534
- };
2464
+ ##### Drawer.Confirm - 带按钮的抽屉
2535
2465
 
2536
- export default () => {
2537
- const [form] = Form.useForm();
2466
+ | 属性名 | 描述 | 类型 | 默认值 |
2467
+ |--------|--------|--------|--------|
2468
+ | footer | 自定义底部内容 | React.ReactNode | |
2469
+ | onOk | 点击确定回调 | () => void | |
2470
+ | okText | 确认按钮文字 | string | |
2471
+ | okButtonProps | 确认按钮属性 | ButtonProps | |
2472
+ | onCancel | 点击取消回调 | () => void | |
2473
+ | cancelText | 取消按钮文字 | string | |
2474
+ | cancelButtonProps | 取消按钮属性 | ButtonProps | |
2475
+ | info | 底部额外内容 | React.ReactNode | |
2538
2476
 
2539
- return (
2540
- <Form form={form}>
2541
- <Sub />
2542
- </Form>
2543
- );
2544
- };
2545
- ```
2477
+ <AntdApiRef url="https://ant.design/components/drawer-cn/#api"></AntdApiRef>
2546
2478
 
2547
2479
 
2548
- ### Form.useWatch
2480
+ ## antd API
2549
2481
 
2550
- `type Form.useWatch = (namePath: NamePath | (selector: (values: Store)) => any, formInstance?: FormInstance | WatchOptions): Value`
2482
+ 通用属性参考:[通用属性](/docs/react/common-props)
2551
2483
 
2552
- `5.12.0` 新增 `selector`
2484
+ <!-- prettier-ignore -->
2485
+ <Container type="warning" title="注意">
2486
+ v5 使用 `rootClassName` 与 `rootStyle` 来配置最外层元素样式。原 v4 `className` 与 `style` 改至配置 Drawer 窗体样式以和 Modal 对齐。
2487
+ </Container>
2488
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2489
+ |--------|--------|--------|--------|--------|
2490
+ | autoFocus | 抽屉展开后是否将焦点切换至其 DOM 节点 | boolean | true | 4.17.0 |
2491
+ | afterOpenChange | 切换抽屉时动画结束后的回调 | function(open) | - | |
2492
+ | className | Drawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassName | string | - | |
2493
+ | classNames | 语义化结构 className | | - | 5.10.0 |
2494
+ | closeIcon | 自定义关闭图标。5.7.0:设置为 | ReactNode | | |
2495
+ | destroyOnHidden | 关闭时销毁 Drawer 里的子元素 | boolean | false | 5.25.0 |
2496
+ | extra | 抽屉右上角的操作区域 | ReactNode | - | 4.17.0 |
2497
+ | footer | 抽屉的页脚 | ReactNode | - | |
2498
+ | forceRender | 预渲染 Drawer 内元素 | boolean | false | |
2499
+ | getContainer | 指定 Drawer 挂载的节点, | HTMLElement \| () => HTMLElement \| Selectors \| false | body | |
2500
+ | height | 高度,在 | string \| number | 378 | |
2501
+ | keyboard | 是否支持键盘 esc 关闭 | boolean | true | |
2502
+ | mask | 是否展示遮罩 | boolean | true | |
2503
+ | maskClosable | 点击蒙层是否允许关闭 | boolean | true | |
2504
+ | placement | 抽屉的方向 | top | right | |
2505
+ | push | 用于设置多层 Drawer 的推动行为 | boolean \| { distance: string \| number } | { distance: 180 } | 4.5.0+ |
2506
+ | rootStyle | 可用于设置 Drawer 最外层容器的样式,和 | CSSProperties | - | |
2507
+ | size | 预设抽屉宽度(或高度),default | 'default' \| 'large' | 'default' | 4.17.0 |
2508
+ | style | 设计 Drawer 容器样式,如果你只需要设置内容部分请使用 | CSSProperties | - | |
2509
+ | styles | 语义化结构 style | | - | 5.10.0 |
2510
+ | title | 标题 | ReactNode | - | |
2511
+ | loading | 显示骨架屏 | boolean | false | 5.17.0 |
2512
+ | open | Drawer 是否可见 | boolean | - |
2513
+ | width | 宽度 | string \| number | 378 | |
2514
+ | zIndex | 设置 Drawer 的 | number | 1000 | |
2515
+ | onClose | 点击遮罩层或左上角叉或取消按钮的回调 | function(e) | - | |
2516
+ | drawerRender | 自定义渲染抽屉 | (node: ReactNode) => ReactNode | - | 5.18.0 |
2553
2517
 
2554
- 用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
2555
2518
 
2556
2519
 
2557
- ```tsx
2558
- const Demo = () => {
2559
- const [form] = Form.useForm();
2560
- const userName = Form.useWatch('username', form);
2561
2520
 
2562
- const { data: options } = useSWR(`/api/user/${userName}`, fetcher);
2521
+ <DemoTitle title="DatePicker" desc="输入或选择时间的控件。">
2522
+ #### API
2563
2523
 
2564
- return (
2565
- <Form form={form}>
2566
- <Form.Item name="username">
2567
- <AutoComplete options={options} />
2568
- </Form.Item>
2569
- </Form>
2570
- );
2571
- };
2572
- ```
2524
+ <AntdApiRef url="https://ant.design/components/date-picker-cn/#api"></AntdApiRef>
2573
2525
 
2574
2526
 
2575
- 如果你的组件被包裹在 `Form.Item` 内部,你可以省略第二个参数,`Form.useWatch` 会自动找到上层最近的 `FormInstance`。
2527
+ ## antd API
2576
2528
 
2577
- `useWatch` 默认只监听在 Form 中注册的字段,如果需要监听非注册字段,可以通过配置 `preserve` 进行监听:
2529
+ 通用属性参考:[通用属性](/docs/react/common-props)
2578
2530
 
2531
+ 日期类组件包括以下五种形式。
2579
2532
 
2580
- ```tsx
2581
- const Demo = () => {
2582
- const [form] = Form.useForm();
2583
2533
 
2584
- const age = Form.useWatch('age', { form, preserve: true });
2585
- console.log(age);
2534
+ - DatePicker
2535
+ - DatePicker[picker="month"]
2536
+ - DatePicker[picker="week"]
2537
+ - DatePicker[picker="year"]
2538
+ - DatePicker[picker="quarter"] (4.1.0 新增)
2539
+ - RangePicker
2586
2540
 
2587
- return (
2588
- <div>
2589
- <Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
2590
- <Form form={form}>
2591
- <Form.Item name="name">
2592
- <Input />
2593
- </Form.Item>
2594
- </Form>
2595
- </div>
2596
- );
2597
- };
2598
- ```
2541
+ ### 国际化配置
2599
2542
 
2543
+ 默认配置为 en-US,如果你需要设置其他语言,推荐在入口处使用我们提供的国际化组件,详见:[ConfigProvider 国际化](https://ant.design/components/config-provider-cn/)。
2600
2544
 
2601
- ### Form.Item.useStatus
2545
+ 如有特殊需求(仅修改单一组件的语言),请使用 locale 参数,参考:[默认配置](https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json)。
2602
2546
 
2603
- `type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
2604
2547
 
2605
- `4.22.0` 新增,可用于获取当前 Form.Item 的校验状态,如果上层没有 Form.Item,`status` 将会返回 `undefined`。`5.4.0` 新增 `errors` 和 `warnings`,可用于获取当前 Form.Item 的错误信息和警告信息:
2548
+ ```jsx
2549
+ // 默认语言为 en-US,如果你需要设置其他语言,推荐在入口文件全局设置 locale
2550
+ // 确保还导入相关的 dayjs 文件,否则所有文本的区域设置都不会更改(例如范围选择器月份)
2551
+ import locale from 'antd/locale/zh_CN';
2552
+ import dayjs from 'dayjs';
2606
2553
 
2554
+ import 'dayjs/locale/zh-cn';
2607
2555
 
2608
- ```tsx
2609
- const CustomInput = ({ value, onChange }) => {
2610
- const { status, errors } = Form.Item.useStatus();
2611
- return (
2612
- <input
2613
- value={value}
2614
- onChange={onChange}
2615
- className={`custom-input-${status}`}
2616
- placeholder={(errors.length && errors[0]) || ''}
2617
- />
2618
- );
2619
- };
2556
+ dayjs.locale('zh-cn');
2620
2557
 
2621
- export default () => (
2622
- <Form>
2623
- <Form.Item name="username">
2624
- <CustomInput />
2625
- </Form.Item>
2626
- </Form>
2627
- );
2558
+ <ConfigProvider locale={locale}>
2559
+ <DatePicker defaultValue={dayjs('2015-01-01', 'YYYY-MM-DD')} />
2560
+ </ConfigProvider>;
2628
2561
  ```
2629
2562
 
2630
2563
 
2631
- #### 与其他获取数据的方式的区别
2632
-
2633
- Form 仅会对变更的 Field 进行刷新,从而避免完整的组件刷新可能引发的性能问题。因而你无法在 render 阶段通过 `form.getFieldsValue` 来实时获取字段值,而 `useWatch` 提供了一种特定字段访问的方式,从而使得在当前组件中可以直接消费字段的值。同时,如果为了更好的渲染性能,你可以通过 Field renderProps 仅更新需要更新的部分。而当当前组件更新或者 effect 都不需要消费字段值时,则可以通过 `onValuesChange` 将数据抛出,从而避免组件更新。
2634
-
2635
- ## Interface
2636
-
2637
- ### NamePath
2638
-
2639
- `string | number | (string | number)[]`
2640
-
2641
- ### GetFieldsValue
2642
-
2643
- `getFieldsValue` 提供了多种重载方法:
2644
-
2645
- #### getFieldsValue(nameList?: true | [NamePath](#namepath)[], filterFunc?: FilterFunc)
2646
-
2647
- 当不提供 `nameList` 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。
2648
-
2649
- 当 `nameList` 为 `true` 时,返回 store 中所有的值,包含未注册字段。例如通过 `setFieldsValue` 设置了不存在的 Item 的值,也可以通过 `true` 全部获取。
2650
-
2651
- 当 `nameList` 为数组时,返回规定路径的值。需要注意的是,`nameList` 为嵌套数组。例如你需要某路径值应该如下:
2652
-
2653
-
2654
- ```tsx
2655
- // 单个路径
2656
- form.getFieldsValue([['user', 'age']]);
2564
+ <!-- prettier-ignore -->
2565
+ <Container type="warning">
2566
+ 在搭配 Next.js App Router 使用时,注意在引入 dayjs locale 文件时加上 `'use client'`。这是由于 Ant Design 的组件都是客户端组件,在 RSC 中引入 dayjs locale 文件将不会在客户端生效。
2567
+ </Container>
2568
+ ### 共同的 API
2657
2569
 
2658
- // 多个路径
2659
- form.getFieldsValue([
2660
- ['user', 'age'],
2661
- ['preset', 'account'],
2662
- ]);
2663
- ```
2570
+ 以下 API 为 DatePicker、 RangePicker 共享的 API。
2664
2571
 
2572
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2573
+ |--------|--------|--------|--------|--------|
2574
+ | allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | true | 5.8.0: 支持对象类型 |
2575
+ | autoFocus | 自动获取焦点 | boolean | false | |
2576
+ | className | 选择器 className | string | - | |
2577
+ | dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
2578
+ | cellRender | 自定义单元格的内容 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
2579
+ | components | 自定义面板 | Record | - | 5.14.0 |
2580
+ | defaultOpen | 是否默认展开控制弹层 | boolean | - | |
2581
+ | disabled | 禁用 | boolean | false | |
2582
+ | disabledDate | 不可选择的日期 | (currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean | - | info |
2583
+ | format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 | | | |
2584
+ | order | 多选、范围时是否自动排序 | boolean | true | 5.14.0 |
2585
+ | preserveInvalidOnBlur | 失去焦点是否要清空输入框内无效内容 | boolean | false | 5.14.0 |
2586
+ | getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
2587
+ | inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
2588
+ | locale | 国际化配置 | object | | |
2589
+ | minDate | 最小日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
2590
+ | maxDate | 最大日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
2591
+ | mode | 日期面板的状态( | time | - | |
2592
+ | needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
2593
+ | nextIcon | 自定义下一个图标 | ReactNode | - | 4.17.0 |
2594
+ | open | 控制弹层是否展开 | boolean | - | |
2595
+ | panelRender | 自定义渲染面板 | (panelNode) => ReactNode | - | 4.5.0 |
2596
+ | picker | 设置选择器类型 | date | date | quarter |
2597
+ | placeholder | 输入框提示文字 | string \| [string, string] | - | |
2598
+ | placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
2599
+ | prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
2600
+ | prevIcon | 自定义上一个图标 | ReactNode | - | 4.17.0 |
2601
+ | presets | 预设时间范围快捷选择, 自 | { label: React.ReactNode, value: Dayjs \| (() => Dayjs) }[] | - | |
2602
+ | size | 输入框大小, | large | - | |
2603
+ | status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
2604
+ | style | 自定义输入框样式 | CSSProperties | {} | |
2605
+ | suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
2606
+ | superNextIcon | 自定义 | ReactNode | - | 4.17.0 |
2607
+ | superPrevIcon | 自定义 | ReactNode | - | 4.17.0 |
2608
+ | variant | 形态变体 | outlined | outlined | 5.13.0 \| |
2609
+ | onOpenChange | 弹出日历和关闭日历的回调 | function(open) | - | |
2610
+ | onPanelChange | 日历面板切换的回调 | function(value, mode) | - | |
2665
2611
 
2666
- #### getFieldsValue({ strict?: boolean, filter?: FilterFunc })
2667
2612
 
2668
- `5.8.0` 新增接受配置参数。当 `strict` 为 `true` 时会仅匹配 Item 的值。例如 `{ list: [{ bamboo: 1, little: 2 }] }` 中,如果 List 仅绑定了 `bamboo` 字段,那么 `getFieldsValue({ strict: true })` 会只获得 `{ list: [{ bamboo: 1 }] }`。
2613
+ ### 共同的方法
2669
2614
 
2670
- ### FilterFunc
2615
+ | 名称 | 描述 | 版本 |
2616
+ |--------|--------|--------|
2617
+ | blur() | 移除焦点 | |
2618
+ | focus() | 获取焦点 | |
2671
2619
 
2672
- 用于过滤一些字段值,`meta` 会返回字段相关信息。例如可以用来获取仅被用户修改过的值等等。
2673
2620
 
2621
+ ### DatePicker
2674
2622
 
2675
- ```tsx
2676
- type FilterFunc = (meta: { touched: boolean; validating: boolean }) => boolean;
2677
- ```
2623
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2624
+ |--------|--------|--------|--------|--------|
2625
+ | defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
2626
+ | defaultValue | 默认日期,如果开始时间或结束时间为 | | - | |
2627
+ | disabledTime | 不可选择的时间 | function(date) | - | |
2628
+ | format | 展示的日期格式,配置参考 | | YYYY-MM-DD | |
2629
+ | multiple | 是否为多选,不支持 | boolean | false | 5.14.0 |
2630
+ | pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
2631
+ | renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
2632
+ | showNow | 显示当前日期时间的快捷选择 | boolean | - | |
2633
+ | showTime | 增加时间选择功能 | Object \| boolean | | |
2634
+ | showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | dayjs() | |
2635
+ | showWeek | DatePicker 下展示当前周 | boolean | false | 5.14.0 |
2636
+ | value | 日期 | | - | |
2637
+ | onChange | 时间发生变化的回调 | function(date: dayjs, dateString: string) | - | |
2638
+ | onOk | 点击确定按钮的回调 | function() | - | |
2639
+ | onPanelChange | 日期面板变化时的回调 | function(value, mode) | - | |
2678
2640
 
2679
2641
 
2680
- ### FieldData
2642
+ ### DatePicker[picker=year]
2681
2643
 
2682
- | 名称 | 说明 | 类型 |
2683
- |--------|--------|--------|
2684
- | errors | 错误信息 | string[] |
2685
- | warnings | 警告信息 | string[] |
2686
- | name | 字段名称 | |
2687
- | touched | 是否被用户操作过 | boolean |
2688
- | validating | 是否正在校验 | boolean |
2689
- | value | 字段对应值 | any |
2644
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2645
+ |--------|--------|--------|--------|--------|
2646
+ | defaultValue | 默认日期 | | - | |
2647
+ | format | 展示的日期格式,配置参考 | | YYYY | |
2648
+ | multiple | 是否为多选 | boolean | false | 5.14.0 |
2649
+ | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
2650
+ | value | 日期 | | - | |
2651
+ | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
2690
2652
 
2691
2653
 
2692
- ### Rule
2654
+ ### DatePicker[picker=quarter]
2693
2655
 
2694
- Rule 支持接收 object 进行配置,也支持 function 来动态获取 form 的数据:
2656
+ `4.1.0` 新增。
2695
2657
 
2658
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2659
+ |--------|--------|--------|--------|--------|
2660
+ | defaultValue | 默认日期 | | - | |
2661
+ | format | 展示的日期格式,配置参考 | | YYYY-\QQ | |
2662
+ | multiple | 是否为多选 | boolean | false | 5.14.0 |
2663
+ | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
2664
+ | value | 日期 | | - | |
2665
+ | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
2696
2666
 
2697
- ```tsx
2698
- type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
2699
- ```
2700
2667
 
2668
+ ### DatePicker[picker=month]
2701
2669
 
2702
- | 名称 | 说明 | 类型 | 版本 |
2703
- |--------|--------|--------|--------|
2704
- | defaultField | 仅在 | | |
2705
- | enum | 是否匹配枚举中的值(需要将 | any[] | |
2706
- | fields | 仅在 | Record<string, | |
2707
- | len | string 类型时为字符串长度;number 类型时为确定数字; array 类型时为数组长度 | number | |
2708
- | max | 必须设置 | number | |
2709
- | message | 错误信息,不设置时会通过 | string \| ReactElement | |
2710
- | min | 必须设置 | number | |
2711
- | pattern | 正则表达式匹配 | RegExp | |
2712
- | required | 是否为必选字段 | boolean | |
2713
- | transform | 将字段值转换成目标值后进行校验 | (value) => any | |
2714
- | type | 类型,常见有 | string | |
2715
- | validateTrigger | 设置触发验证时机,必须是 Form.Item 的 | string \| string[] | |
2716
- | validator | 自定义校验,接收 Promise 作为返回值。 | ( | |
2717
- | warningOnly | 仅警告,不阻塞表单提交 | boolean | 4.17.0 |
2718
- | whitespace | 如果字段仅包含空格则校验不通过,只在 | boolean | |
2670
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2671
+ |--------|--------|--------|--------|--------|
2672
+ | defaultValue | 默认日期 | | - | |
2673
+ | format | 展示的日期格式,配置参考 | | YYYY-MM | |
2674
+ | multiple | 是否为多选 | boolean | false | 5.14.0 |
2675
+ | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
2676
+ | value | 日期 | | - | |
2677
+ | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
2719
2678
 
2720
2679
 
2721
- ### WatchOptions
2680
+ ### DatePicker[picker=week]
2722
2681
 
2723
- | 名称 | 说明 | 类型 | 默认值 | 版本 |
2682
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2724
2683
  |--------|--------|--------|--------|--------|
2725
- | form | 指定 Form 实例 | FormInstance | 当前 context 中的 Form | 5.4.0 |
2726
- | preserve | 是否监视没有对应的 | boolean | false | 5.4.0 |
2727
-
2728
-
2684
+ | defaultValue | 默认日期 | | - | |
2685
+ | format | 展示的日期格式,配置参考 | | YYYY-wo | |
2686
+ | multiple | 是否为多选 | boolean | false | 5.14.0 |
2687
+ | renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
2688
+ | value | 日期 | | - | |
2689
+ | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
2690
+ | showWeek | DatePicker 下展示当前周 | boolean | true | 5.14.0 |
2729
2691
 
2730
2692
 
2731
- <DemoTitle title="FloatButton" desc="用于网站上的全局功能;无论浏览到何处都可以看见的按钮。">
2732
- #### API
2693
+ ### RangePicker
2733
2694
 
2734
- <AntdApiRef url="https://ant.design/components/float-button-cn/#api"></AntdApiRef>
2695
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2696
+ |--------|--------|--------|--------|--------|
2697
+ | allowEmpty | 允许起始项部分为空 | [boolean, boolean] | [false, false] | |
2698
+ | cellRender | 自定义单元格的内容。 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
2699
+ | dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
2700
+ | defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
2701
+ | defaultValue | 默认日期 | | - | |
2702
+ | disabled | 禁用起始项 | [boolean, boolean] | - | |
2703
+ | disabledTime | 不可选择的时间 | function(date: dayjs, partial: | - | info.from |
2704
+ | format | 展示的日期格式,配置参考 | | YYYY-MM-DD HH:mm:ss | |
2705
+ | id | 设置输入框 | { start?: string, end?: string } | - | 5.14.0 |
2706
+ | pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
2707
+ | presets | 预设时间范围快捷选择,自 | { label: React.ReactNode, value: (Dayjs \| (() => Dayjs))[] }[] | - | |
2708
+ | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
2709
+ | separator | 设置分隔符 | React.ReactNode | | |
2710
+ | showTime | 增加时间选择功能 | Object\|boolean | | |
2711
+ | showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | [dayjs(), dayjs()] | |
2712
+ | value | 日期 | | - | |
2713
+ | onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
2714
+ | onChange | 日期范围发生变化的回调 | function(dates: [dayjs, dayjs], dateStrings: [string, string]) | - | |
2715
+ | onFocus | 聚焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
2716
+ | onBlur | 失焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
2735
2717
 
2736
2718
 
2737
- ## antd API
2719
+ #### formatType
2738
2720
 
2739
- 通用属性参考:[通用属性](/docs/react/common-props)
2740
2721
 
2741
- 自 `antd@5.0.0` 版本开始提供该组件。
2722
+ ```typescript
2723
+ import type { Dayjs } from 'dayjs';
2742
2724
 
2743
- ### 共同的 API
2725
+ type Generic = string;
2726
+ type GenericFn = (value: Dayjs) => string;
2744
2727
 
2745
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2746
- |--------|--------|--------|--------|--------|
2747
- | icon | 自定义图标 | ReactNode | - | |
2748
- | description | 文字及其它内容 | ReactNode | - | |
2749
- | tooltip | 气泡卡片的内容 | ReactNode \| | - | TooltipProps: 5.25.0 |
2750
- | type | 设置按钮类型 | default | default | |
2751
- | shape | 设置按钮形状 | circle | circle | |
2752
- | onClick | 点击按钮时的回调 | (event) => void | - | |
2753
- | href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
2754
- | target | 相当于 a 标签的 target 属性,href 存在时生效 | string | - | |
2755
- | htmlType | 设置 | submit | button | 5.21.0 |
2756
- | badge | 带徽标数字的悬浮按钮(不支持 | | - | 5.4.0 |
2728
+ export type FormatType =
2729
+ | Generic
2730
+ | GenericFn
2731
+ | Array
2732
+ | {
2733
+ format: string;
2734
+ type?: 'mask';
2735
+ };
2736
+ ```
2757
2737
 
2758
2738
 
2759
- ### FloatButton.Group
2739
+ 注意:`type` 定义为 `5.14.0` 新增。
2760
2740
 
2761
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2762
- |--------|--------|--------|--------|--------|
2763
- | shape | 设置包含的 FloatButton 按钮形状 | circle | circle | |
2764
- | trigger | 触发方式(有触发方式为菜单模式) | click | - | |
2765
- | open | 受控展开,需配合 trigger 一起使用 | boolean | - | |
2766
- | closeIcon | 自定义关闭按钮 | React.ReactNode | | |
2767
- | placement | 自定义菜单弹出位置 | top | top | 5.21.0 |
2768
- | onOpenChange | 展开收起时的回调,需配合 trigger 一起使用 | (open: boolean) => void | - | |
2769
- | onClick | 点击按钮时的回调(仅在菜单模式中有效) | (event) => void | - | 5.3.0 |
2770
2741
 
2771
2742
 
2772
- ### FloatButton.BackTop
2743
+ <DemoTitle title="Form" desc="高性能表单控件,自带数据域管理。包含数据录入、校验以及对应样式。">
2744
+ #### API
2773
2745
 
2774
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2775
- |--------|--------|--------|--------|--------|
2776
- | duration | 回到顶部所需时间(ms) | number | 450 | |
2777
- | target | 设置需要监听其滚动事件的元素 | () => HTMLElement | () => window | |
2778
- | visibilityHeight | 滚动高度达到此参数值才出现 BackTop | number | 400 | |
2779
- | onClick | 点击按钮的回调函数 | () => void | - | |
2746
+ <AntdApiRef url="https://ant.design/components/form-cn/#api"></AntdApiRef>
2780
2747
 
2781
2748
 
2749
+ ## antd API
2782
2750
 
2751
+ 通用属性参考:[通用属性](/docs/react/common-props)
2783
2752
 
2784
- <DemoTitle title="Empty" desc="用于空状态的占位图形展示。">
2785
- ## API
2753
+ ### Form
2786
2754
 
2787
- | 属性名 | 描述 | 类型 | 默认值 |
2788
- |--------|--------|--------|--------|
2789
- | type | 空状态类型 | \| 'noData'
2790
- \| 'networkError'
2791
- \| '404'
2792
- \| 'arrears'
2793
- \| 'desktopOnly'
2794
- \| 'noAudio'
2795
- \| 'noImage'
2796
- \| 'noVideo'
2797
- \| 'noAccess'
2798
- \| 'error'
2799
- \| 'noChat'
2800
- \| 'noModel'
2801
- \| 'noApp'
2802
- \| 'success'
2803
- \| 'failed'
2804
- \| 'inProgress'
2805
- \| 'stayTuned' | 'noData' |
2806
- | texture | 是否显示纹理 | boolean | true |
2807
- | image | 图片地址 | string | 默认是no data的图片 |
2808
- | imageStyle | 图片样式 | React.CSSProperties | |
2809
- | title | 标题内容 | React.ReactNode | |
2810
- | description | 自定义描述内容 | React.ReactNode | |
2811
- | onOk | ok按钮的点击事件 | (e: React.MouseEvent) => void | |
2812
- | okText | ok按钮的文本 | React.ReactNode | |
2813
- | okType | ok按钮的类型 | SparkButtonProps['type'] | 'primary' |
2814
- | okButtonProps | ok按钮的props | SparkButtonProps | |
2815
- | children | 自定义空状态的内容 | React.ReactNode | |
2816
- | className | 自定义空状态的类名 | string | |
2817
- | style | 自定义空状态的样式 | React.CSSProperties | |
2818
- | size | 自定义空状态的大小 | React.CSSProperties['width'] | |
2819
- | autoFit | 是否自适应容器宽度,当容器宽度小于 size 时自动缩放 | boolean | false |
2755
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
2756
+ |--------|--------|--------|--------|--------|
2757
+ | colon | 配置 Form.Item 的 | boolean | true | |
2758
+ | disabled | 设置表单组件禁用,仅对 antd 组件有效 | boolean | false | 4.21.0 |
2759
+ | component | 设置 Form 渲染元素,为 | ComponentType \| false | form | |
2760
+ | fields | 通过状态管理(如 redux)控制表单字段,如非强需求不推荐使用。查看 | | - | |
2761
+ | form | 经 | | - | |
2762
+ | feedbackIcons | 当 | | - | 5.9.0 |
2763
+ | initialValues | 表单默认值,只有初始化以及重置时生效 | object | - | |
2764
+ | labelAlign | label 标签的文本对齐方式 | left | right | |
2765
+ | labelWrap | label 标签的文本换行方式 | boolean | false | 4.18.0 |
2766
+ | labelCol | label 标签布局,同 | | - | |
2767
+ | layout | 表单布局 | horizontal | horizontal | |
2768
+ | name | 表单名称,会作为表单字段 | string | - | |
2769
+ | preserve | 当字段被删除时保留字段值。你可以通过 | boolean | true | 4.4.0 |
2770
+ | requiredMark | 必选样式,可以切换为必选或者可选展示样式。此为 Form 配置,Form.Item 无法单独配置 | boolean \| | true | renderProps |
2771
+ | scrollToFirstError | 提交失败自动滚动到第一个错误字段 | boolean \| | false | focus: 5.24.0 |
2772
+ | size | 设置字段组件的尺寸(仅限 antd 组件) | small | - | |
2773
+ | validateMessages | 验证提示模板,说明 | | - | |
2774
+ | validateTrigger | 统一设置字段触发验证的时机 | string \| string[] | onChange | 4.3.0 |
2775
+ | variant | 表单内控件变体 | outlined | outlined | 5.13.0 \| |
2776
+ | wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol | | - | |
2777
+ | onFieldsChange | 字段更新时触发回调事件 | function(changedFields, allFields) | - | |
2778
+ | onFinish | 提交表单且数据验证成功后回调事件 | function(values) | - | |
2779
+ | onFinishFailed | 提交表单且数据验证失败后回调事件 | function({ values, errorFields, outOfDate }) | - | |
2780
+ | onValuesChange | 字段值更新时触发回调事件 | function(changedValues, allValues) | - | |
2781
+ | clearOnDestroy | 当表单被卸载时清空表单值 | boolean | false | 5.18.0 |
2820
2782
 
2821
2783
 
2822
- <AntdApiRef url="https://ant.design/components/empty-cn/#api"></AntdApiRef>
2784
+ 支持原生 form 除 `onSubmit` 外的所有属性。
2823
2785
 
2786
+ ### validateMessages
2824
2787
 
2788
+ Form 为验证提供了[默认的错误提示信息](https://github.com/ant-design/ant-design/blob/6234509d18bac1ac60fbb3f92a5b2c6a6361295a/components/locale/en_US.ts#L88-L134),你可以通过配置 `validateMessages` 属性,修改对应的提示模板。一种常见的使用方式,是配置国际化提示信息:
2825
2789
 
2826
2790
 
2791
+ ```jsx
2792
+ const validateMessages = {
2793
+ required: "'${name}' 是必选字段",
2794
+ // ...
2795
+ };
2827
2796
 
2828
- <DemoTitle title="Descriptions" desc="展示多个只读字段的组合">
2829
- #### API
2797
+ <Form validateMessages={validateMessages} />;
2798
+ ```
2830
2799
 
2831
- <AntdApiRef url="https://ant.design/components/descriptions-cn/#api"></AntdApiRef>
2832
2800
 
2801
+ 此外,[ConfigProvider](/components/config-provider-cn) 也提供了全局化配置方案,允许统一配置错误提示模板:
2833
2802
 
2834
- ## antd API
2835
2803
 
2836
- 通用属性参考:[通用属性](/docs/react/common-props)
2804
+ ```jsx
2805
+ const validateMessages = {
2806
+ required: "'${name}' 是必选字段",
2807
+ // ...
2808
+ };
2837
2809
 
2838
- ### Descriptions
2810
+ <ConfigProvider form={{ validateMessages }}>
2811
+ <Form />
2812
+ </ConfigProvider>;
2813
+ ```
2839
2814
 
2840
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2841
- |--------|--------|--------|--------|--------|
2842
- | bordered | 是否展示边框 | boolean | false | |
2843
- | colon | 配置 | boolean | true | |
2844
- | column | 一行的 | number \| | 3 | |
2845
- | extra | 描述列表的操作区域,显示在右上方 | ReactNode | - | 4.5.0 |
2846
- | items | 描述列表项内容 | | - | 5.8.0 |
2847
- | layout | 描述布局 | horizontal | horizontal | |
2848
- | size | 设置列表的大小。可以设置为 | default | - | |
2849
- | title | 描述列表的标题,显示在最顶部 | ReactNode | - | |
2850
- | classNames | 语义化结构 class | | - | 5.23.0 |
2851
- | styles | 语义化结构 style | | - | 5.23.0 |
2852
2815
 
2816
+ ## Form.Item
2853
2817
 
2854
- ### DescriptionItem
2818
+ 表单字段组件,用于数据双向绑定、校验、布局等。
2855
2819
 
2856
2820
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2857
2821
  |--------|--------|--------|--------|--------|
2858
- | label | 内容的描述 | ReactNode | - | |
2859
- | span | 包含列的数量( | number\| | 1 | screens: 5.9.0 |
2860
-
2822
+ | colon | 配合 | boolean | true | |
2823
+ | dependencies | 设置依赖字段,说明 | | - | |
2824
+ | extra | 额外的提示信息,和 | ReactNode | - | |
2825
+ | getValueFromEvent | 设置如何将 event 的值转换成字段值 | (..args: any[]) => any | - | |
2826
+ | getValueProps | 为子元素添加额外的属性 (不建议通过 | (value: any) => Record | - | 4.2.0 |
2827
+ | hasFeedback | 配合 | boolean \| { icons: | false | icons: 5.9.0 |
2828
+ | help | 提示信息,如不设置,则会根据校验规则自动生成 | ReactNode | - | |
2829
+ | hidden | 是否隐藏字段(依然会收集和校验字段) | boolean | false | 4.4.0 |
2830
+ | htmlFor | 设置子元素 label | string | - | |
2831
+ | initialValue | 设置子元素默认值,如果与 Form 的 | string | - | 4.2.0 |
2832
+ | label | label | ReactNode | - | null: 5.22.0 |
2833
+ | labelAlign | 标签文本对齐方式 | left | right | |
2834
+ | labelCol | label | | - | |
2835
+ | messageVariables | 默认验证字段的信息,查看 | Record | - | 4.7.0 |
2836
+ | name | 字段名,支持数组 | | - | |
2837
+ | normalize | 组件获取值后进行转换,再放入 Form 中。不支持异步 | (value, prevValue, prevValues) => any | - | |
2838
+ | noStyle | 为 | boolean | false | |
2839
+ | preserve | 当字段被删除时保留字段值 | boolean | true | 4.4.0 |
2840
+ | required | 必填样式设置。如不设置,则会根据校验规则自动生成 | boolean | false | |
2841
+ | rules | 校验规则,设置字段的校验逻辑。点击 | | - | |
2842
+ | shouldUpdate | 自定义字段更新逻辑,说明 | boolean \| (prevValue, curValue) => boolean | false | |
2843
+ | tooltip | 配置提示信息 | ReactNode \| | - | 4.7.0 |
2844
+ | trigger | 设置收集字段值变更的时机。点击 | string | onChange | |
2845
+ | validateFirst | 当某一规则校验不通过时,是否停止剩下的规则的校验。设置 | boolean \| | false | parallel |
2846
+ | validateDebounce | 设置防抖,延迟毫秒数后进行校验 | number | - | 5.9.0 |
2847
+ | validateStatus | 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' | string | - | |
2848
+ | validateTrigger | 设置字段校验的时机 | string \| string[] | onChange | |
2849
+ | valuePropName | 子节点的值的属性。注意:Switch、Checkbox 的 valuePropName 应该是 | string | value | |
2850
+ | wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 | | - | |
2851
+ | layout | 表单项布局 | horizontal | - | 5.18.0 |
2861
2852
 
2862
- span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度。当同时配置 `style` 和 `labelStyle`(或 `contentStyle`)时,两者会同时作用。样式冲突时,后者会覆盖前者。
2863
2853
 
2854
+ 被设置了 `name` 属性的 `Form.Item` 包装的控件,表单控件会自动添加 `value`(或 `valuePropName` 指定的其他属性) `onChange`(或 `trigger` 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:
2864
2855
 
2865
2856
 
2866
- <DemoTitle title="Dropdown" desc="向下弹出的列表。">
2867
- #### API
2857
+ 1. 你**不再需要也不应该**用 `onChange` 来做数据收集同步(你可以使用 Form 的 `onValuesChange`),但还是可以继续监听 `onChange` 事件。
2858
+ 2. 你不能用控件的 `value` 或 `defaultValue` 等属性来设置表单域的值,默认值可以用 Form 里的 `initialValues` 来设置。注意 `initialValues` 不能被 `setState` 动态更新,你需要用 `setFieldsValue` 来更新。
2859
+ 3. 你不应该用 `setState`,可以使用 `form.setFieldsValue` 来动态改变表单值。
2868
2860
 
2869
- <AntdApiRef url="https://ant.design/components/dropdown-cn/#api"></AntdApiRef>
2861
+ ### dependencies
2870
2862
 
2863
+ 当字段间存在依赖关系时使用。如果一个字段设置了 `dependencies` 属性。那么它所依赖的字段更新时,该字段将自动触发更新与校验。一种常见的场景,就是注册用户表单的“密码”与“确认密码”字段。“确认密码”校验依赖于“密码”字段,设置 `dependencies` 后,“密码”字段更新会重新触发“校验密码”的校验逻辑。你可以参考[具体例子](#form-demo-dependencies)。
2871
2864
 
2872
- ## antd API
2865
+ `dependencies` 不应和 `shouldUpdate` 一起使用,因为这可能带来更新逻辑的混乱。
2873
2866
 
2874
- 通用属性参考:[通用属性](/docs/react/common-props)
2867
+ ### FeedbackIcons
2875
2868
 
2876
- ### Dropdown
2869
+ `({ status: ValidateStatus, errors: ReactNode, warnings: ReactNode }) => Record<ValidateStatus, ReactNode>`
2877
2870
 
2878
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2879
- |--------|--------|--------|--------|--------|
2880
- | arrow | 下拉框箭头是否显示 | boolean \| { pointAtCenter: boolean } | false | |
2881
- | autoAdjustOverflow | 下拉框被遮挡时自动调整位置 | boolean | true | 5.2.0 |
2882
- | autoFocus | 打开后自动聚焦下拉框 | boolean | false | 4.21.0 |
2883
- | disabled | 菜单是否禁用 | boolean | - | |
2884
- | destroyOnHidden | 关闭后是否销毁 Dropdown | boolean | false | 5.25.0 |
2885
- | popupRender | 自定义弹出框内容 | (menus: ReactNode) => ReactNode | - | 5.25.0 |
2886
- | getPopupContainer | 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
2887
- | menu | 菜单配置项 | | - | 4.24.0 |
2888
- | overlayClassName | 下拉根元素的类名称 | string | - | |
2889
- | overlayStyle | 下拉根元素的样式 | CSSProperties | - | |
2890
- | placement | 菜单弹出位置: | string | bottomLeft | |
2891
- | trigger | 触发下拉的行为,移动端不支持 hover | Array< | [ | |
2892
- | open | 菜单是否显示,小于 4.23.0 使用 | boolean | - | 4.23.0 |
2893
- | onOpenChange | 菜单显示状态改变时调用,点击菜单按钮导致的消失不会触发。小于 4.23.0 使用 | (open: boolean, info: { source: 'trigger' \| 'menu' }) => void | - | info.source |
2871
+ ### shouldUpdate
2894
2872
 
2873
+ Form 通过增量更新方式,只更新被修改的字段相关组件以达到性能优化目的。大部分场景下,你只需要编写代码或者与 [`dependencies`](#dependencies) 属性配合校验即可。而在某些特定场景,例如修改某个字段值后出现新的字段选项、或者纯粹希望表单任意变化都对某一个区域进行渲染。你可以通过 `shouldUpdate` 修改 Form.Item 的更新逻辑。
2895
2874
 
2896
- ### Dropdown.Button
2875
+ `shouldUpdate` 为 `true` 时,Form 的任意变化都会使该 Form.Item 重新渲染。这对于自定义渲染一些区域十分有帮助,要注意 Form.Item 里包裹的子组件必须由函数返回,否则 `shouldUpdate` 不会起作用:
2897
2876
 
2898
- 属性与 Dropdown 的相同。还包含以下属性:
2877
+ 相关issue:[#34500](https://github.com/ant-design/ant-design/issues/34500)
2899
2878
 
2900
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2901
- |--------|--------|--------|--------|--------|
2902
- | buttonsRender | 自定义左右两个按钮 | (buttons: ReactNode[]) => ReactNode[] | - | |
2903
- | loading | 设置按钮载入状态,和 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
2904
- | danger | 设置危险按钮 | boolean | - | 4.23.0 |
2905
- | icon | 右侧的 icon | ReactNode | - | |
2906
- | size | 按钮大小,和 | large | middle | |
2907
- | type | 按钮类型,和 | primary | default | |
2908
- | onClick | 点击左侧按钮的回调,和 | (event: React.MouseEvent) => void | - | |
2909
2879
 
2880
+ ```jsx
2881
+ <Form.Item shouldUpdate>
2882
+ {() => {
2883
+ return <pre>{JSON.stringify(form.getFieldsValue(), null, 2)}</pre>;
2884
+ }}
2885
+ </Form.Item>
2886
+ ```
2910
2887
 
2911
- ## 注意
2912
2888
 
2913
- 请确保 `Dropdown` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onFocus`、`onClick` 事件。
2914
- ## antd API
2889
+ 你可以参考[示例](#form-demo-inline-login)查看具体使用场景。
2915
2890
 
2916
- ### Menu
2891
+ `shouldUpdate` 为方法时,表单的每次数值更新都会调用该方法,提供原先的值与当前的值以供你比较是否需要更新。这对于是否根据值来渲染额外字段十分有帮助:
2917
2892
 
2918
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2919
- |--------|--------|--------|--------|--------|
2920
- | defaultOpenKeys | 初始展开的 SubMenu 菜单项 key 数组 | string[] | - | |
2921
- | defaultSelectedKeys | 初始选中的菜单项 key 数组 | string[] | - | |
2922
- | expandIcon | 自定义展开图标 | ReactNode \| | - | 4.9.0 |
2923
- | forceSubMenuRender | 在子菜单展示之前就渲染进 DOM | boolean | false | |
2924
- | inlineCollapsed | inline 时菜单是否收起状态 | boolean | - | |
2925
- | inlineIndent | inline 模式的菜单缩进宽度 | number | 24 | |
2926
- | items | 菜单内容 | | - | 4.20.0 |
2927
- | mode | 菜单类型,现在支持垂直、水平、和内嵌模式三种 | vertical | vertical | |
2928
- | multiple | 是否允许多选 | boolean | false | |
2929
- | openKeys | 当前展开的 SubMenu 菜单项 key 数组 | string[] | - | |
2930
- | overflowedIndicator | 用于自定义 Menu 水平空间不足时的省略收缩的图标 | ReactNode | | |
2931
- | selectable | 是否允许选中 | boolean | true | |
2932
- | selectedKeys | 当前选中的菜单项 key 数组 | string[] | - | |
2933
- | style | 根节点样式 | CSSProperties | - | |
2934
- | subMenuCloseDelay | 用户鼠标离开子菜单后关闭延时,单位:秒 | number | 0.1 | |
2935
- | subMenuOpenDelay | 用户鼠标进入子菜单后开启延时,单位:秒 | number | 0 | |
2936
- | theme | 主题颜色 | light | light | |
2937
- | triggerSubMenuAction | SubMenu 展开/关闭的触发行为 | hover | hover | |
2938
- | onClick | 点击 MenuItem 调用此函数 | function({ item, key, keyPath, domEvent }) | - | |
2939
- | onDeselect | 取消选中时调用,仅在 multiple 生效 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
2940
- | onOpenChange | SubMenu 展开/关闭的回调 | function(openKeys: string[]) | - | |
2941
- | onSelect | 被选中时调用 | function({ item, key, keyPath, selectedKeys, domEvent }) | -   | |
2942
2893
 
2894
+ ```jsx
2895
+ <Form.Item shouldUpdate={(prevValues, curValues) => prevValues.additional !== curValues.additional}>
2896
+ {() => {
2897
+ return (
2898
+ <Form.Item name="other">
2899
+ <Input />
2900
+ </Form.Item>
2901
+ );
2902
+ }}
2903
+ </Form.Item>
2904
+ ```
2943
2905
 
2944
- 更多属性查看 [rc-menu](https://github.com/react-component/menu#api)
2945
2906
 
2946
- ### ItemType
2907
+ 你可以参考[示例](#form-demo-control-hooks)查看具体使用场景。
2947
2908
 
2948
- type ItemType = [MenuItemType](#menuitemtype) | [SubMenuType](#submenutype) | [MenuItemGroupType](#menuitemgrouptype) | [MenuDividerType](#menudividertype);
2909
+ ### messageVariables
2949
2910
 
2950
- #### MenuItemType
2911
+ 你可以通过 `messageVariables` 修改 Form.Item 的默认验证信息。
2951
2912
 
2952
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2953
- |--------|--------|--------|--------|--------|
2954
- | danger | 展示错误状态样式 | boolean | false | |
2955
- | disabled | 是否禁用 | boolean | false | |
2956
- | extra | 额外节点 | ReactNode | - | 5.21.0 |
2957
- | icon | 菜单图标 | ReactNode | - | |
2958
- | key | item 的唯一标志 | string | - | |
2959
- | label | 菜单项标题 | ReactNode | - | |
2960
- | title | 设置收缩时展示的悬浮标题 | string | - | |
2961
2913
 
2914
+ ```jsx
2915
+ <Form>
2916
+ <Form.Item
2917
+ messageVariables={{ another: 'good' }}
2918
+ label="user"
2919
+ rules={[{ required: true, message: '${another} is required' }]}
2920
+ >
2921
+ <Input />
2922
+ </Form.Item>
2923
+ <Form.Item
2924
+ messageVariables={{ label: 'good' }}
2925
+ label={<span>user</span>}
2926
+ rules={[{ required: true, message: '${label} is required' }]}
2927
+ >
2928
+ <Input />
2929
+ </Form.Item>
2930
+ </Form>
2931
+ ```
2962
2932
 
2963
- #### SubMenuType
2964
2933
 
2965
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
2966
- |--------|--------|--------|--------|--------|
2967
- | children | 子菜单的菜单项 | | - | |
2968
- | disabled | 是否禁用 | boolean | false | |
2969
- | icon | 菜单图标 | ReactNode | - | |
2970
- | key | 唯一标志 | string | - | |
2971
- | label | 菜单项标题 | ReactNode | - | |
2972
- | popupClassName | 子菜单样式, | string | - | |
2973
- | popupOffset | 子菜单偏移量, | [number, number] | - | |
2974
- | onTitleClick | 点击子菜单标题 | function({ key, domEvent }) | - | |
2975
- | theme | 设置子菜单的主题,默认从 Menu 上继承 | light | - | |
2934
+ `5.20.2` 起,当你希望不要转译 `${}` 时,你可以通过 `\\${}` 来略过:
2976
2935
 
2977
2936
 
2978
- #### MenuItemGroupType
2937
+ ```jsx
2938
+ { required: true, message: '${label} is convert, \\${label} is not convert' }
2979
2939
 
2980
- 定义类型为 `group` 时,会作为分组处理:
2940
+ // good is convert, ${label} is not convert
2941
+ ```
2981
2942
 
2982
2943
 
2983
- ```ts
2984
- const groupItem = {
2985
- type: 'group', // Must have
2986
- label: 'My Group',
2987
- children: [],
2988
- };
2989
- ```
2944
+ ## Form.List
2990
2945
 
2946
+ 为字段提供数组化管理。
2991
2947
 
2992
2948
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
2993
2949
  |--------|--------|--------|--------|--------|
2994
- | children | 分组的菜单项 | | - | |
2995
- | label | 分组标题 | ReactNode | - | |
2950
+ | children | 渲染函数 | (fields: Field[], operation: { add, remove, move }, meta: { errors }) => React.ReactNode | - | |
2951
+ | initialValue | 设置子元素默认值,如果与 Form 的 | any[] | - | 4.9.0 |
2952
+ | name | 字段名,支持数组。List 本身也是字段,因而 | | - | |
2953
+ | rules | 校验规则,仅支持自定义规则。需要配合 | { validator, message }[] | - | 4.7.0 |
2996
2954
 
2997
2955
 
2998
- #### MenuDividerType
2999
2956
 
3000
- 菜单项分割线,只用在弹出菜单内,需要定义类型为 `divider`:
2957
+ ```tsx
2958
+ <Form.List>
2959
+ {(fields) =>
2960
+ fields.map((field) => (
2961
+ <Form.Item {...field}>
2962
+ <Input />
2963
+ </Form.Item>
2964
+ ))
2965
+ }
2966
+ </Form.List>
2967
+ ```
3001
2968
 
3002
2969
 
3003
- ```ts
3004
- const dividerItem = {
3005
- type: 'divider', // Must have
3006
- };
3007
- ```
2970
+ 注意:Form.List 下的字段不应该配置 `initialValue`,你始终应该通过 Form.List 的 `initialValue` 或者 Form 的 `initialValues` 来配置。
2971
+
2972
+ ## operation
3008
2973
 
2974
+ Form.List 渲染表单相关操作函数。
3009
2975
 
3010
2976
  | 参数 | 说明 | 类型 | 默认值 | 版本 |
3011
2977
  |--------|--------|--------|--------|--------|
3012
- | dashed | 是否虚线 | boolean | false | |
2978
+ | add | 新增表单项 | (defaultValue?: any, insertIndex?: number) => void | insertIndex | 4.6.0 |
2979
+ | move | 移动表单项 | (from: number, to: number) => void | - | |
2980
+ | remove | 删除表单项 | (index: number \| number[]) => void | number[] | 4.5.0 |
3013
2981
 
3014
2982
 
2983
+ ## Form.ErrorList
3015
2984
 
2985
+ 4.7.0 新增。错误展示组件,仅限配合 Form.List 的 rules 一同使用。参考[示例](#form-demo-dynamic-form-item)。
3016
2986
 
3017
- <DemoTitle title="DatePicker" desc="输入或选择时间的控件。">
3018
- #### API
2987
+ | 参数 | 说明 | 类型 | 默认值 |
2988
+ |--------|--------|--------|--------|
2989
+ | errors | 错误列表 | ReactNode[] | - |
3019
2990
 
3020
- <AntdApiRef url="https://ant.design/components/date-picker-cn/#api"></AntdApiRef>
3021
2991
 
2992
+ ## Form.Provider
3022
2993
 
3023
- ## antd API
2994
+ 提供表单间联动功能,其下设置 `name` 的 Form 更新时,会自动触发对应事件。查看[示例](#form-demo-form-context)。
3024
2995
 
3025
- 通用属性参考:[通用属性](/docs/react/common-props)
2996
+ | 参数 | 说明 | 类型 | 默认值 |
2997
+ |--------|--------|--------|--------|
2998
+ | onFormChange | 子表单字段更新时触发 | function(formName: string, info: { changedFields, forms }) | - |
2999
+ | onFormFinish | 子表单提交时触发 | function(formName: string, info: { values, forms }) | - |
3026
3000
 
3027
- 日期类组件包括以下五种形式。
3028
3001
 
3029
3002
 
3030
- - DatePicker
3031
- - DatePicker[picker="month"]
3032
- - DatePicker[picker="week"]
3033
- - DatePicker[picker="year"]
3034
- - DatePicker[picker="quarter"] (4.1.0 新增)
3035
- - RangePicker
3003
+ ```jsx
3004
+ <Form.Provider
3005
+ onFormFinish={(name) => {
3006
+ if (name === 'form1') {
3007
+ // Do something...
3008
+ }
3009
+ }}
3010
+ >
3011
+ <Form name="form1">...</Form>
3012
+ <Form name="form2">...</Form>
3013
+ </Form.Provider>
3014
+ ```
3036
3015
 
3037
- ### 国际化配置
3038
3016
 
3039
- 默认配置为 en-US,如果你需要设置其他语言,推荐在入口处使用我们提供的国际化组件,详见:[ConfigProvider 国际化](https://ant.design/components/config-provider-cn/)。
3017
+ ### FormInstance
3040
3018
 
3041
- 如有特殊需求(仅修改单一组件的语言),请使用 locale 参数,参考:[默认配置](https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json)。
3019
+ | 名称 | 说明 | 类型 | 版本 |
3020
+ |--------|--------|--------|--------|
3021
+ | getFieldError | 获取对应字段名的错误信息 | (name: | |
3022
+ | getFieldInstance | 获取对应字段实例 | (name: | 4.4.0 |
3023
+ | getFieldsError | 获取一组字段名对应的错误信息,返回为数组形式 | (nameList?: | |
3024
+ | getFieldsValue | 获取一组字段名对应的值,会按照对应结构返回。默认返回现存字段值,当调用 | | |
3025
+ | getFieldValue | 获取对应字段名的值 | (name: | |
3026
+ | isFieldsTouched | 检查一组字段是否被用户操作过, | (nameList?: | |
3027
+ | isFieldTouched | 检查对应字段是否被用户操作过 | (name: | |
3028
+ | isFieldValidating | 检查对应字段是否正在校验 | (name: | |
3029
+ | resetFields | 重置一组字段到 | (fields?: | |
3030
+ | scrollToField | 滚动到对应字段位置 | (name: | focus: 5.24.0 |
3031
+ | setFields | 设置一组字段状态 | (fields: | |
3032
+ | setFieldValue | 设置表单的值(该值将直接传入 form store 中并且 | (name: | 4.22.0 |
3033
+ | setFieldsValue | 设置表单的值(该值将直接传入 form store 中并且 | (values) => void | |
3034
+ | submit | 提交表单,与点击 | () => void | |
3035
+ | validateFields | 触发表单验证,设置 | (nameList?: | |
3042
3036
 
3043
3037
 
3044
- ```jsx
3045
- // 默认语言为 en-US,如果你需要设置其他语言,推荐在入口文件全局设置 locale
3046
- // 确保还导入相关的 dayjs 文件,否则所有文本的区域设置都不会更改(例如范围选择器月份)
3047
- import locale from 'antd/locale/zh_CN';
3048
- import dayjs from 'dayjs';
3038
+ #### validateFields
3049
3039
 
3050
- import 'dayjs/locale/zh-cn';
3051
3040
 
3052
- dayjs.locale('zh-cn');
3041
+ ```tsx
3042
+ export interface ValidateConfig {
3043
+ // 5.5.0 新增。仅校验内容而不会将错误信息展示到 UI 上。
3044
+ validateOnly?: boolean;
3045
+ // 5.9.0 新增。对提供的 `nameList` 与其子路径进行递归校验。
3046
+ recursive?: boolean;
3047
+ // 5.11.0 新增。校验 dirty 的字段(touched + validated)。
3048
+ // 使用 `dirty` 可以很方便的仅校验用户操作过和被校验过的字段。
3049
+ dirty?: boolean;
3050
+ }
3051
+ ```
3053
3052
 
3054
- <ConfigProvider locale={locale}>
3055
- <DatePicker defaultValue={dayjs('2015-01-01', 'YYYY-MM-DD')} />
3056
- </ConfigProvider>;
3053
+
3054
+ 返回示例:
3055
+
3056
+
3057
+ ```jsx
3058
+ validateFields()
3059
+ .then((values) => {
3060
+ /*
3061
+ values:
3062
+ {
3063
+ username: 'username',
3064
+ password: 'password',
3065
+ }
3066
+ */
3067
+ })
3068
+ .catch((errorInfo) => {
3069
+ /*
3070
+ errorInfo:
3071
+ {
3072
+ values: {
3073
+ username: 'username',
3074
+ password: 'password',
3075
+ },
3076
+ errorFields: [
3077
+ { name: ['password'], errors: ['Please input your Password!'] },
3078
+ ],
3079
+ outOfDate: false,
3080
+ }
3081
+ */
3082
+ });
3057
3083
  ```
3058
3084
 
3059
3085
 
3060
- <!-- prettier-ignore -->
3061
- <Container type="warning">
3062
- 在搭配 Next.js 的 App Router 使用时,注意在引入 dayjs 的 locale 文件时加上 `'use client'`。这是由于 Ant Design 的组件都是客户端组件,在 RSC 中引入 dayjs 的 locale 文件将不会在客户端生效。
3063
- </Container>
3064
- ### 共同的 API
3086
+ ## Hooks
3065
3087
 
3066
- 以下 API 为 DatePicker、 RangePicker 共享的 API。
3088
+ ### Form.useForm
3067
3089
 
3068
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3069
- |--------|--------|--------|--------|--------|
3070
- | allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | true | 5.8.0: 支持对象类型 |
3071
- | autoFocus | 自动获取焦点 | boolean | false | |
3072
- | className | 选择器 className | string | - | |
3073
- | dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
3074
- | cellRender | 自定义单元格的内容 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
3075
- | components | 自定义面板 | Record | - | 5.14.0 |
3076
- | defaultOpen | 是否默认展开控制弹层 | boolean | - | |
3077
- | disabled | 禁用 | boolean | false | |
3078
- | disabledDate | 不可选择的日期 | (currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean | - | info |
3079
- | format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 | | | |
3080
- | order | 多选、范围时是否自动排序 | boolean | true | 5.14.0 |
3081
- | preserveInvalidOnBlur | 失去焦点是否要清空输入框内无效内容 | boolean | false | 5.14.0 |
3082
- | getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
3083
- | inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
3084
- | locale | 国际化配置 | object | | |
3085
- | minDate | 最小日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
3086
- | maxDate | 最大日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
3087
- | mode | 日期面板的状态( | time | - | |
3088
- | needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
3089
- | nextIcon | 自定义下一个图标 | ReactNode | - | 4.17.0 |
3090
- | open | 控制弹层是否展开 | boolean | - | |
3091
- | panelRender | 自定义渲染面板 | (panelNode) => ReactNode | - | 4.5.0 |
3092
- | picker | 设置选择器类型 | date | date | quarter |
3093
- | placeholder | 输入框提示文字 | string \| [string, string] | - | |
3094
- | placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
3095
- | prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
3096
- | prevIcon | 自定义上一个图标 | ReactNode | - | 4.17.0 |
3097
- | presets | 预设时间范围快捷选择, 自 | { label: React.ReactNode, value: Dayjs \| (() => Dayjs) }[] | - | |
3098
- | size | 输入框大小, | large | - | |
3099
- | status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
3100
- | style | 自定义输入框样式 | CSSProperties | {} | |
3101
- | suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
3102
- | superNextIcon | 自定义 | ReactNode | - | 4.17.0 |
3103
- | superPrevIcon | 自定义 | ReactNode | - | 4.17.0 |
3104
- | variant | 形态变体 | outlined | outlined | 5.13.0 \| |
3105
- | onOpenChange | 弹出日历和关闭日历的回调 | function(open) | - | |
3106
- | onPanelChange | 日历面板切换的回调 | function(value, mode) | - | |
3090
+ `type Form.useForm = (): [FormInstance]`
3091
+
3092
+ 创建 Form 实例,用于管理所有数据状态。
3093
+
3094
+ ### Form.useFormInstance
3095
+
3096
+ `type Form.useFormInstance = (): FormInstance`
3107
3097
 
3098
+ `4.20.0` 新增,获取当前上下文正在使用的 Form 实例,常见于封装子组件消费无需透传 Form 实例:
3108
3099
 
3109
- ### 共同的方法
3110
3100
 
3111
- | 名称 | 描述 | 版本 |
3112
- |--------|--------|--------|
3113
- | blur() | 移除焦点 | |
3114
- | focus() | 获取焦点 | |
3101
+ ```tsx
3102
+ const Sub = () => {
3103
+ const form = Form.useFormInstance();
3115
3104
 
3105
+ return <Button onClick={() => form.setFieldsValue({})} />;
3106
+ };
3116
3107
 
3117
- ### DatePicker
3108
+ export default () => {
3109
+ const [form] = Form.useForm();
3118
3110
 
3119
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3120
- |--------|--------|--------|--------|--------|
3121
- | defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
3122
- | defaultValue | 默认日期,如果开始时间或结束时间为 | | - | |
3123
- | disabledTime | 不可选择的时间 | function(date) | - | |
3124
- | format | 展示的日期格式,配置参考 | | YYYY-MM-DD | |
3125
- | multiple | 是否为多选,不支持 | boolean | false | 5.14.0 |
3126
- | pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
3127
- | renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
3128
- | showNow | 显示当前日期时间的快捷选择 | boolean | - | |
3129
- | showTime | 增加时间选择功能 | Object \| boolean | | |
3130
- | showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | dayjs() | |
3131
- | showWeek | DatePicker 下展示当前周 | boolean | false | 5.14.0 |
3132
- | value | 日期 | | - | |
3133
- | onChange | 时间发生变化的回调 | function(date: dayjs, dateString: string) | - | |
3134
- | onOk | 点击确定按钮的回调 | function() | - | |
3135
- | onPanelChange | 日期面板变化时的回调 | function(value, mode) | - | |
3111
+ return (
3112
+ <Form form={form}>
3113
+ <Sub />
3114
+ </Form>
3115
+ );
3116
+ };
3117
+ ```
3136
3118
 
3137
3119
 
3138
- ### DatePicker[picker=year]
3120
+ ### Form.useWatch
3139
3121
 
3140
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3141
- |--------|--------|--------|--------|--------|
3142
- | defaultValue | 默认日期 | | - | |
3143
- | format | 展示的日期格式,配置参考 | | YYYY | |
3144
- | multiple | 是否为多选 | boolean | false | 5.14.0 |
3145
- | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
3146
- | value | 日期 | | - | |
3147
- | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
3122
+ `type Form.useWatch = (namePath: NamePath | (selector: (values: Store)) => any, formInstance?: FormInstance | WatchOptions): Value`
3148
3123
 
3124
+ `5.12.0` 新增 `selector`
3149
3125
 
3150
- ### DatePicker[picker=quarter]
3126
+ 用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
3151
3127
 
3152
- `4.1.0` 新增。
3153
3128
 
3154
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3155
- |--------|--------|--------|--------|--------|
3156
- | defaultValue | 默认日期 | | - | |
3157
- | format | 展示的日期格式,配置参考 | | YYYY-\QQ | |
3158
- | multiple | 是否为多选 | boolean | false | 5.14.0 |
3159
- | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
3160
- | value | 日期 | | - | |
3161
- | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
3129
+ ```tsx
3130
+ const Demo = () => {
3131
+ const [form] = Form.useForm();
3132
+ const userName = Form.useWatch('username', form);
3162
3133
 
3134
+ const { data: options } = useSWR(`/api/user/${userName}`, fetcher);
3163
3135
 
3164
- ### DatePicker[picker=month]
3136
+ return (
3137
+ <Form form={form}>
3138
+ <Form.Item name="username">
3139
+ <AutoComplete options={options} />
3140
+ </Form.Item>
3141
+ </Form>
3142
+ );
3143
+ };
3144
+ ```
3165
3145
 
3166
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3167
- |--------|--------|--------|--------|--------|
3168
- | defaultValue | 默认日期 | | - | |
3169
- | format | 展示的日期格式,配置参考 | | YYYY-MM | |
3170
- | multiple | 是否为多选 | boolean | false | 5.14.0 |
3171
- | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
3172
- | value | 日期 | | - | |
3173
- | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
3174
3146
 
3147
+ 如果你的组件被包裹在 `Form.Item` 内部,你可以省略第二个参数,`Form.useWatch` 会自动找到上层最近的 `FormInstance`。
3175
3148
 
3176
- ### DatePicker[picker=week]
3149
+ `useWatch` 默认只监听在 Form 中注册的字段,如果需要监听非注册字段,可以通过配置 `preserve` 进行监听:
3177
3150
 
3178
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3179
- |--------|--------|--------|--------|--------|
3180
- | defaultValue | 默认日期 | | - | |
3181
- | format | 展示的日期格式,配置参考 | | YYYY-wo | |
3182
- | multiple | 是否为多选 | boolean | false | 5.14.0 |
3183
- | renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
3184
- | value | 日期 | | - | |
3185
- | onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
3186
- | showWeek | DatePicker 下展示当前周 | boolean | true | 5.14.0 |
3187
3151
 
3152
+ ```tsx
3153
+ const Demo = () => {
3154
+ const [form] = Form.useForm();
3188
3155
 
3189
- ### RangePicker
3156
+ const age = Form.useWatch('age', { form, preserve: true });
3157
+ console.log(age);
3190
3158
 
3191
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3192
- |--------|--------|--------|--------|--------|
3193
- | allowEmpty | 允许起始项部分为空 | [boolean, boolean] | [false, false] | |
3194
- | cellRender | 自定义单元格的内容。 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
3195
- | dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
3196
- | defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
3197
- | defaultValue | 默认日期 | | - | |
3198
- | disabled | 禁用起始项 | [boolean, boolean] | - | |
3199
- | disabledTime | 不可选择的时间 | function(date: dayjs, partial: | - | info.from |
3200
- | format | 展示的日期格式,配置参考 | | YYYY-MM-DD HH:mm:ss | |
3201
- | id | 设置输入框 | { start?: string, end?: string } | - | 5.14.0 |
3202
- | pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
3203
- | presets | 预设时间范围快捷选择,自 | { label: React.ReactNode, value: (Dayjs \| (() => Dayjs))[] }[] | - | |
3204
- | renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
3205
- | separator | 设置分隔符 | React.ReactNode | | |
3206
- | showTime | 增加时间选择功能 | Object\|boolean | | |
3207
- | showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | [dayjs(), dayjs()] | |
3208
- | value | 日期 | | - | |
3209
- | onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
3210
- | onChange | 日期范围发生变化的回调 | function(dates: [dayjs, dayjs], dateStrings: [string, string]) | - | |
3211
- | onFocus | 聚焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
3212
- | onBlur | 失焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
3159
+ return (
3160
+ <div>
3161
+ <Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
3162
+ <Form form={form}>
3163
+ <Form.Item name="name">
3164
+ <Input />
3165
+ </Form.Item>
3166
+ </Form>
3167
+ </div>
3168
+ );
3169
+ };
3170
+ ```
3213
3171
 
3214
3172
 
3215
- #### formatType
3173
+ ### Form.Item.useStatus
3216
3174
 
3175
+ `type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
3217
3176
 
3218
- ```typescript
3219
- import type { Dayjs } from 'dayjs';
3177
+ `4.22.0` 新增,可用于获取当前 Form.Item 的校验状态,如果上层没有 Form.Item,`status` 将会返回 `undefined`。`5.4.0` 新增 `errors` 和 `warnings`,可用于获取当前 Form.Item 的错误信息和警告信息:
3220
3178
 
3221
- type Generic = string;
3222
- type GenericFn = (value: Dayjs) => string;
3223
3179
 
3224
- export type FormatType =
3225
- | Generic
3226
- | GenericFn
3227
- | Array
3228
- | {
3229
- format: string;
3230
- type?: 'mask';
3231
- };
3180
+ ```tsx
3181
+ const CustomInput = ({ value, onChange }) => {
3182
+ const { status, errors } = Form.Item.useStatus();
3183
+ return (
3184
+ <input
3185
+ value={value}
3186
+ onChange={onChange}
3187
+ className={`custom-input-${status}`}
3188
+ placeholder={(errors.length && errors[0]) || ''}
3189
+ />
3190
+ );
3191
+ };
3192
+
3193
+ export default () => (
3194
+ <Form>
3195
+ <Form.Item name="username">
3196
+ <CustomInput />
3197
+ </Form.Item>
3198
+ </Form>
3199
+ );
3232
3200
  ```
3233
3201
 
3234
3202
 
3235
- 注意:`type` 定义为 `5.14.0` 新增。
3203
+ #### 与其他获取数据的方式的区别
3236
3204
 
3205
+ Form 仅会对变更的 Field 进行刷新,从而避免完整的组件刷新可能引发的性能问题。因而你无法在 render 阶段通过 `form.getFieldsValue` 来实时获取字段值,而 `useWatch` 提供了一种特定字段访问的方式,从而使得在当前组件中可以直接消费字段的值。同时,如果为了更好的渲染性能,你可以通过 Field 的 renderProps 仅更新需要更新的部分。而当当前组件更新或者 effect 都不需要消费字段值时,则可以通过 `onValuesChange` 将数据抛出,从而避免组件更新。
3237
3206
 
3207
+ ## Interface
3238
3208
 
3239
- <DemoTitle title="CollapsePanel" desc="折叠面板">
3240
- #### API
3209
+ ### NamePath
3241
3210
 
3242
- | 属性名 | 描述 | 类型 | 默认值 |
3243
- |--------|--------|--------|--------|
3244
- | collapsedHeight | 收起状态下显示的内容高度 | number | 0 |
3245
- | expandedHeight | 展开状态下的内容高度,设置后内容超出时可滚动,不设置则自适应内容高度 | number | 300 |
3246
- | title | 面板标题 | string \| React.ReactNode | "" |
3247
- | expandOnPanelClick | 是否允许点击整个面板进行展开 | boolean | false |
3248
- | extra | 面板右侧内容 | React.ReactNode | |
3249
- | children | 面板内容 | React.ReactNode | |
3250
- | defaultExpanded | 是否默认展开 | boolean | false |
3251
- | classNames | 语义化的classNames | Partial> | |
3252
- | styles | 语义化的styles | Partial<
3253
- Record
3254
- > | |
3211
+ `string | number | (string | number)[]`
3255
3212
 
3213
+ ### GetFieldsValue
3256
3214
 
3215
+ `getFieldsValue` 提供了多种重载方法:
3257
3216
 
3258
- ## antd API
3217
+ #### getFieldsValue(nameList?: true | [NamePath](#namepath)[], filterFunc?: FilterFunc)
3259
3218
 
3260
- 通用属性参考:[通用属性](/docs/react/common-props)
3219
+ 当不提供 `nameList` 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。
3261
3220
 
3262
- ### Collapse
3221
+ `nameList` 为 `true` 时,返回 store 中所有的值,包含未注册字段。例如通过 `setFieldsValue` 设置了不存在的 Item 的值,也可以通过 `true` 全部获取。
3263
3222
 
3264
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3265
- |--------|--------|--------|--------|--------|
3266
- | accordion | 手风琴模式 | boolean | false | |
3267
- | activeKey | 当前激活 tab 面板的 key | string[] \| string | | |
3268
- | bordered | 带边框风格的折叠面板 | boolean | true | |
3269
- | collapsible | 所有子面板是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 |
3270
- | defaultActiveKey | 初始化选中面板的 key | string[] \| string | - | |
3271
- | destroyOnHidden | 销毁折叠隐藏的面板 | boolean | false | 5.25.0 |
3272
- | expandIcon | 自定义切换图标 | (panelProps) => ReactNode | - | |
3273
- | expandIconPosition | 设置图标位置 | start | - | 4.21.0 |
3274
- | ghost | 使折叠面板透明且无边框 | boolean | false | 4.4.0 |
3275
- | size | 设置折叠面板大小 | large | middle | 5.2.0 |
3276
- | onChange | 切换面板的回调 | function | - | |
3277
- | items | 折叠项目内容 | | - | 5.6.0 |
3223
+ `nameList` 为数组时,返回规定路径的值。需要注意的是,`nameList` 为嵌套数组。例如你需要某路径值应该如下:
3278
3224
 
3279
3225
 
3280
- ### ItemType
3226
+ ```tsx
3227
+ // 单个路径
3228
+ form.getFieldsValue([['user', 'age']]);
3281
3229
 
3282
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3283
- |--------|--------|--------|--------|--------|
3284
- | classNames | 语义化结构 className | | - | 5.21.0 |
3285
- | collapsible | 是否可折叠或指定可折叠触发区域 | header | - | |
3286
- | forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
3287
- | key | 对应 activeKey | string \| number | - | |
3288
- | label | 面板标题 | ReactNode | - | - |
3289
- | showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
3290
- | styles | 语义化结构 style | | - | 5.21.0 |
3230
+ // 多个路径
3231
+ form.getFieldsValue([
3232
+ ['user', 'age'],
3233
+ ['preset', 'account'],
3234
+ ]);
3235
+ ```
3291
3236
 
3292
3237
 
3293
- ### Collapse.Panel
3238
+ #### getFieldsValue({ strict?: boolean, filter?: FilterFunc })
3294
3239
 
3295
- <!-- prettier-ignore -->
3296
- <Container type="warning" title="已废弃">
3297
- 版本 >= 5.6.0 时请使用 items 方式配置面板。
3298
- </Container>
3299
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3300
- |--------|--------|--------|--------|--------|
3301
- | collapsible | 是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 (icon: 4.24.0) |
3302
- | forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
3303
- | header | 面板标题 | ReactNode | - | |
3304
- | key | 对应 activeKey | string \| number | - | |
3305
- | showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
3240
+ `5.8.0` 新增接受配置参数。当 `strict` 为 `true` 时会仅匹配 Item 的值。例如 `{ list: [{ bamboo: 1, little: 2 }] }` 中,如果 List 仅绑定了 `bamboo` 字段,那么 `getFieldsValue({ strict: true })` 会只获得 `{ list: [{ bamboo: 1 }] }`。
3241
+
3242
+ ### FilterFunc
3243
+
3244
+ 用于过滤一些字段值,`meta` 会返回字段相关信息。例如可以用来获取仅被用户修改过的值等等。
3245
+
3246
+
3247
+ ```tsx
3248
+ type FilterFunc = (meta: { touched: boolean; validating: boolean }) => boolean;
3249
+ ```
3306
3250
 
3307
3251
 
3252
+ ### FieldData
3308
3253
 
3254
+ | 名称 | 说明 | 类型 |
3255
+ |--------|--------|--------|
3256
+ | errors | 错误信息 | string[] |
3257
+ | warnings | 警告信息 | string[] |
3258
+ | name | 字段名称 | |
3259
+ | touched | 是否被用户操作过 | boolean |
3260
+ | validating | 是否正在校验 | boolean |
3261
+ | value | 字段对应值 | any |
3309
3262
 
3310
- <DemoTitle title="Drawer" desc="从页面一侧滑入的操作面板,用于承载临时界面内容。">
3311
- #### API
3312
3263
 
3313
- | 属性名 | 描述 | 类型 | 默认值 |
3314
- |--------|--------|--------|--------|
3315
- | showDivider | 是否显示分割线 | boolean | true |
3264
+ ### Rule
3316
3265
 
3317
- ##### Drawer.Confirm - 带按钮的抽屉
3266
+ Rule 支持接收 object 进行配置,也支持 function 来动态获取 form 的数据:
3318
3267
 
3319
- | 属性名 | 描述 | 类型 | 默认值 |
3320
- |--------|--------|--------|--------|
3321
- | footer | 自定义底部内容 | React.ReactNode | |
3322
- | onOk | 点击确定回调 | () => void | |
3323
- | okText | 确认按钮文字 | string | |
3324
- | okButtonProps | 确认按钮属性 | ButtonProps | |
3325
- | onCancel | 点击取消回调 | () => void | |
3326
- | cancelText | 取消按钮文字 | string | |
3327
- | cancelButtonProps | 取消按钮属性 | ButtonProps | |
3328
- | info | 底部额外内容 | React.ReactNode | |
3329
3268
 
3330
- <AntdApiRef url="https://ant.design/components/drawer-cn/#api"></AntdApiRef>
3269
+ ```tsx
3270
+ type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
3271
+ ```
3331
3272
 
3332
3273
 
3333
- ## antd API
3274
+ | 名称 | 说明 | 类型 | 版本 |
3275
+ |--------|--------|--------|--------|
3276
+ | defaultField | 仅在 | | |
3277
+ | enum | 是否匹配枚举中的值(需要将 | any[] | |
3278
+ | fields | 仅在 | Record<string, | |
3279
+ | len | string 类型时为字符串长度;number 类型时为确定数字; array 类型时为数组长度 | number | |
3280
+ | max | 必须设置 | number | |
3281
+ | message | 错误信息,不设置时会通过 | string \| ReactElement | |
3282
+ | min | 必须设置 | number | |
3283
+ | pattern | 正则表达式匹配 | RegExp | |
3284
+ | required | 是否为必选字段 | boolean | |
3285
+ | transform | 将字段值转换成目标值后进行校验 | (value) => any | |
3286
+ | type | 类型,常见有 | string | |
3287
+ | validateTrigger | 设置触发验证时机,必须是 Form.Item 的 | string \| string[] | |
3288
+ | validator | 自定义校验,接收 Promise 作为返回值。 | ( | |
3289
+ | warningOnly | 仅警告,不阻塞表单提交 | boolean | 4.17.0 |
3290
+ | whitespace | 如果字段仅包含空格则校验不通过,只在 | boolean | |
3334
3291
 
3335
- 通用属性参考:[通用属性](/docs/react/common-props)
3336
3292
 
3337
- <!-- prettier-ignore -->
3338
- <Container type="warning" title="注意">
3339
- v5 使用 `rootClassName` `rootStyle` 来配置最外层元素样式。原 v4 `className` `style` 改至配置 Drawer 窗体样式以和 Modal 对齐。
3340
- </Container>
3341
- | 参数 | 说明 | 类型 | 默认值 | 版本 |
3293
+ ### WatchOptions
3294
+
3295
+ | 名称 | 说明 | 类型 | 默认值 | 版本 |
3342
3296
  |--------|--------|--------|--------|--------|
3343
- | autoFocus | 抽屉展开后是否将焦点切换至其 DOM 节点 | boolean | true | 4.17.0 |
3344
- | afterOpenChange | 切换抽屉时动画结束后的回调 | function(open) | - | |
3345
- | className | Drawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassName | string | - | |
3346
- | classNames | 语义化结构 className | | - | 5.10.0 |
3347
- | closeIcon | 自定义关闭图标。5.7.0:设置为 | ReactNode | | |
3348
- | destroyOnHidden | 关闭时销毁 Drawer 里的子元素 | boolean | false | 5.25.0 |
3349
- | extra | 抽屉右上角的操作区域 | ReactNode | - | 4.17.0 |
3350
- | footer | 抽屉的页脚 | ReactNode | - | |
3351
- | forceRender | 预渲染 Drawer 内元素 | boolean | false | |
3352
- | getContainer | 指定 Drawer 挂载的节点, | HTMLElement \| () => HTMLElement \| Selectors \| false | body | |
3353
- | height | 高度,在 | string \| number | 378 | |
3354
- | keyboard | 是否支持键盘 esc 关闭 | boolean | true | |
3355
- | mask | 是否展示遮罩 | boolean | true | |
3356
- | maskClosable | 点击蒙层是否允许关闭 | boolean | true | |
3357
- | placement | 抽屉的方向 | top | right | |
3358
- | push | 用于设置多层 Drawer 的推动行为 | boolean \| { distance: string \| number } | { distance: 180 } | 4.5.0+ |
3359
- | rootStyle | 可用于设置 Drawer 最外层容器的样式,和 | CSSProperties | - | |
3360
- | size | 预设抽屉宽度(或高度),default | 'default' \| 'large' | 'default' | 4.17.0 |
3361
- | style | 设计 Drawer 容器样式,如果你只需要设置内容部分请使用 | CSSProperties | - | |
3362
- | styles | 语义化结构 style | | - | 5.10.0 |
3363
- | title | 标题 | ReactNode | - | |
3364
- | loading | 显示骨架屏 | boolean | false | 5.17.0 |
3365
- | open | Drawer 是否可见 | boolean | - |
3366
- | width | 宽度 | string \| number | 378 | |
3367
- | zIndex | 设置 Drawer 的 | number | 1000 | |
3368
- | onClose | 点击遮罩层或左上角叉或取消按钮的回调 | function(e) | - | |
3369
- | drawerRender | 自定义渲染抽屉 | (node: ReactNode) => ReactNode | - | 5.18.0 |
3297
+ | form | 指定 Form 实例 | FormInstance | 当前 context 中的 Form | 5.4.0 |
3298
+ | preserve | 是否监视没有对应的 | boolean | false | 5.4.0 |
3370
3299
 
3371
3300
 
3372
3301
 
3373
3302
 
3374
- <DemoTitle title="Collapse" desc="可以折叠/展开的内容区域">
3303
+ <DemoTitle title="CollapsePanel" desc="折叠面板">
3375
3304
  #### API
3376
3305
 
3377
- <AntdApiRef url="https://ant.design/components/collapse-cn/#api"></AntdApiRef>
3306
+ | 属性名 | 描述 | 类型 | 默认值 |
3307
+ |--------|--------|--------|--------|
3308
+ | collapsedHeight | 收起状态下显示的内容高度 | number | 0 |
3309
+ | expandedHeight | 展开状态下的内容高度,设置后内容超出时可滚动,不设置则自适应内容高度 | number | 300 |
3310
+ | title | 面板标题 | string \| React.ReactNode | "" |
3311
+ | expandOnPanelClick | 是否允许点击整个面板进行展开 | boolean | false |
3312
+ | extra | 面板右侧内容 | React.ReactNode | |
3313
+ | children | 面板内容 | React.ReactNode | |
3314
+ | defaultExpanded | 是否默认展开 | boolean | false |
3315
+ | classNames | 语义化的classNames | Partial> | |
3316
+ | styles | 语义化的styles | Partial<
3317
+ Record
3318
+ > | |
3319
+
3378
3320
 
3379
3321
 
3380
3322
  ## antd API
@@ -3435,11 +3377,11 @@ v5 使用 `rootClassName` 与 `rootStyle` 来配置最外层元素样式。原 v
3435
3377
  | 属性名 | 描述 | 类型 | 默认值 |
3436
3378
  |--------|--------|--------|--------|
3437
3379
  | language | 语言 | string \| string[] | (必填) |
3438
- | value | 值 | string | |
3380
+ | value | 值 | string | (必填) |
3439
3381
  | className | 类名 | string | |
3440
3382
  | theme | 主题 | 'dark' \| 'light' | |
3441
3383
  | readOnly | 只读 | boolean | |
3442
- | onChange | | (value?: string) => void | |
3384
+ | onChange | | (value: string) => void | |
3443
3385
 
3444
3386
 
3445
3387
 
@@ -3515,58 +3457,61 @@ interface Option {
3515
3457
 
3516
3458
 
3517
3459
 
3518
- <DemoTitle title="Button" desc="按钮用于开始一个即时操作。">
3460
+ <DemoTitle title="Collapse" desc="可以折叠/展开的内容区域">
3519
3461
  #### API
3520
3462
 
3521
- | 属性名 | 描述 | 类型 | 默认值 |
3522
- |--------|--------|--------|--------|
3523
- | size | 按钮大小 | 'small' \| 'middle' \| 'large' | 'middle' |
3524
- | type | 类型 | \| 'primary'
3525
- \| 'dashed'
3526
- \| 'link'
3527
- \| 'text'
3528
- \| 'default'
3529
- \| 'primaryLess'
3530
- \| 'textCompact' | 'deafult' |
3531
- | tooltipContent | hover上去tooltip的内容 | string \| ReactNode | |
3532
- | iconType | 百炼图标iconfont的key,依赖ConfigProvider传入的iconfont,例如bl-icon-add | string | |
3533
- | iconSize | 图标大小 | SparkIconFontProps['size'] | |
3534
-
3535
- <AntdApiRef url="https://ant.design/components/button-cn/#api"></AntdApiRef>
3463
+ <AntdApiRef url="https://ant.design/components/collapse-cn/#api"></AntdApiRef>
3536
3464
 
3537
3465
 
3538
3466
  ## antd API
3539
3467
 
3540
3468
  通用属性参考:[通用属性](/docs/react/common-props)
3541
3469
 
3542
- 通过设置 Button 的属性来产生不同的按钮样式,推荐顺序为:`type` -> `shape` -> `size` -> `loading` -> `disabled`。
3470
+ ### Collapse
3543
3471
 
3544
- 按钮的属性说明如下:
3472
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
3473
+ |--------|--------|--------|--------|--------|
3474
+ | accordion | 手风琴模式 | boolean | false | |
3475
+ | activeKey | 当前激活 tab 面板的 key | string[] \| string | | |
3476
+ | bordered | 带边框风格的折叠面板 | boolean | true | |
3477
+ | collapsible | 所有子面板是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 |
3478
+ | defaultActiveKey | 初始化选中面板的 key | string[] \| string | - | |
3479
+ | destroyOnHidden | 销毁折叠隐藏的面板 | boolean | false | 5.25.0 |
3480
+ | expandIcon | 自定义切换图标 | (panelProps) => ReactNode | - | |
3481
+ | expandIconPosition | 设置图标位置 | start | - | 4.21.0 |
3482
+ | ghost | 使折叠面板透明且无边框 | boolean | false | 4.4.0 |
3483
+ | size | 设置折叠面板大小 | large | middle | 5.2.0 |
3484
+ | onChange | 切换面板的回调 | function | - | |
3485
+ | items | 折叠项目内容 | | - | 5.6.0 |
3545
3486
 
3546
- | 属性 | 说明 | 类型 | 默认值 | 版本 |
3487
+
3488
+ ### ItemType
3489
+
3490
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
3547
3491
  |--------|--------|--------|--------|--------|
3548
- | autoInsertSpace | 我们默认提供两个汉字之间的空格,可以设置 | boolean | true | 5.17.0 |
3549
- | block | 将按钮宽度调整为其父宽度的选项 | boolean | false | |
3550
- | classNames | 语义化结构 class | | - | 5.4.0 |
3551
- | color | 设置按钮的颜色 | default | - | default |
3552
- | danger | 语法糖,设置危险按钮。当设置 | boolean | false | |
3553
- | disabled | 设置按钮失效状态 | boolean | false | |
3554
- | ghost | 幽灵属性,使按钮背景透明 | boolean | false | |
3555
- | href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
3556
- | htmlType | 设置 | submit | button | |
3557
- | iconPosition | 设置按钮图标组件的位置 | start | start | 5.17.0 |
3558
- | loading | 设置按钮载入状态 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
3559
- | styles | 语义化结构 style | | - | 5.4.0 |
3560
- | target | 相当于 a 链接的 target 属性,href 存在时生效 | string | - | |
3561
- | onClick | 点击按钮时的回调 | (event: React.MouseEvent) => void | - | |
3562
- | variant | 设置按钮的变体 | outlined | - | 5.21.0 |
3492
+ | classNames | 语义化结构 className | | - | 5.21.0 |
3493
+ | collapsible | 是否可折叠或指定可折叠触发区域 | header | - | |
3494
+ | forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
3495
+ | key | 对应 activeKey | string \| number | - | |
3496
+ | label | 面板标题 | ReactNode | - | - |
3497
+ | showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
3498
+ | styles | 语义化结构 style | | - | 5.21.0 |
3563
3499
 
3564
3500
 
3565
- 支持原生 button 的其他所有属性。
3501
+ ### Collapse.Panel
3566
3502
 
3567
- ### PresetColors
3503
+ <!-- prettier-ignore -->
3504
+ <Container type="warning" title="已废弃">
3505
+ 版本 >= 5.6.0 时请使用 items 方式配置面板。
3506
+ </Container>
3507
+ | 参数 | 说明 | 类型 | 默认值 | 版本 |
3508
+ |--------|--------|--------|--------|--------|
3509
+ | collapsible | 是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 (icon: 4.24.0) |
3510
+ | forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
3511
+ | header | 面板标题 | ReactNode | - | |
3512
+ | key | 对应 activeKey | string \| number | - | |
3513
+ | showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
3568
3514
 
3569
- type PresetColors = 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' | 'red' | 'orange' | 'yellow' | 'volcano' | 'geekblue' | 'lime' | 'gold';
3570
3515
 
3571
3516
 
3572
3517
 
@@ -3633,6 +3578,61 @@ type PresetColors = 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' |
3633
3578
 
3634
3579
 
3635
3580
 
3581
+ <DemoTitle title="Button" desc="按钮用于开始一个即时操作。">
3582
+ #### API
3583
+
3584
+ | 属性名 | 描述 | 类型 | 默认值 |
3585
+ |--------|--------|--------|--------|
3586
+ | size | 按钮大小 | 'small' \| 'middle' \| 'large' | 'middle' |
3587
+ | type | 类型 | \| 'primary'
3588
+ \| 'dashed'
3589
+ \| 'link'
3590
+ \| 'text'
3591
+ \| 'default'
3592
+ \| 'primaryLess'
3593
+ \| 'textCompact' | 'deafult' |
3594
+ | tooltipContent | hover上去tooltip的内容 | string \| ReactNode | |
3595
+ | iconType | 百炼图标iconfont的key,依赖ConfigProvider传入的iconfont,例如bl-icon-add | string | |
3596
+ | iconSize | 图标大小 | SparkIconFontProps['size'] | |
3597
+
3598
+ <AntdApiRef url="https://ant.design/components/button-cn/#api"></AntdApiRef>
3599
+
3600
+
3601
+ ## antd API
3602
+
3603
+ 通用属性参考:[通用属性](/docs/react/common-props)
3604
+
3605
+ 通过设置 Button 的属性来产生不同的按钮样式,推荐顺序为:`type` -> `shape` -> `size` -> `loading` -> `disabled`。
3606
+
3607
+ 按钮的属性说明如下:
3608
+
3609
+ | 属性 | 说明 | 类型 | 默认值 | 版本 |
3610
+ |--------|--------|--------|--------|--------|
3611
+ | autoInsertSpace | 我们默认提供两个汉字之间的空格,可以设置 | boolean | true | 5.17.0 |
3612
+ | block | 将按钮宽度调整为其父宽度的选项 | boolean | false | |
3613
+ | classNames | 语义化结构 class | | - | 5.4.0 |
3614
+ | color | 设置按钮的颜色 | default | - | default |
3615
+ | danger | 语法糖,设置危险按钮。当设置 | boolean | false | |
3616
+ | disabled | 设置按钮失效状态 | boolean | false | |
3617
+ | ghost | 幽灵属性,使按钮背景透明 | boolean | false | |
3618
+ | href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
3619
+ | htmlType | 设置 | submit | button | |
3620
+ | iconPosition | 设置按钮图标组件的位置 | start | start | 5.17.0 |
3621
+ | loading | 设置按钮载入状态 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
3622
+ | styles | 语义化结构 style | | - | 5.4.0 |
3623
+ | target | 相当于 a 链接的 target 属性,href 存在时生效 | string | - | |
3624
+ | onClick | 点击按钮时的回调 | (event: React.MouseEvent) => void | - | |
3625
+ | variant | 设置按钮的变体 | outlined | - | 5.21.0 |
3626
+
3627
+
3628
+ 支持原生 button 的其他所有属性。
3629
+
3630
+ ### PresetColors
3631
+
3632
+ type PresetColors = 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' | 'red' | 'orange' | 'yellow' | 'volcano' | 'geekblue' | 'lime' | 'gold';
3633
+
3634
+
3635
+
3636
3636
  <DemoTitle title="Breadcrumb" desc="显示当前页面在系统层级结构中的位置,并能向上返回。">
3637
3637
  #### API
3638
3638
 
@@ -3752,15 +3752,6 @@ return <Breadcrumb itemRender={itemRender} items={items} />;
3752
3752
 
3753
3753
 
3754
3754
 
3755
- <DemoTitle title="Audio" desc="音频展示">
3756
- #### API
3757
-
3758
- ApiParser解析结果为空
3759
-
3760
-
3761
-
3762
-
3763
-
3764
3755
  <DemoTitle title="Avatar" desc="用来代表用户或事物,支持图片、图标或字符展示。">
3765
3756
  #### API
3766
3757
 
@@ -3800,6 +3791,15 @@ Tip:你可以设置 `icon` 或 `children` 作为图片加载失败的默认 fa
3800
3791
 
3801
3792
 
3802
3793
 
3794
+ <DemoTitle title="Audio" desc="音频展示">
3795
+ #### API
3796
+
3797
+ ApiParser解析结果为空
3798
+
3799
+
3800
+
3801
+
3802
+
3803
3803
  <DemoTitle title="Anchor" desc="用于跳转到页面指定位置。">
3804
3804
  #### API
3805
3805