|
|
|
---
|
|
|
|
category: Components
|
|
|
|
cols: 1
|
|
|
|
type: 数据展示
|
|
|
|
title: Table
|
|
|
|
subtitle: 表格
|
|
|
|
---
|
|
|
|
|
|
|
|
展示行列数据。
|
|
|
|
|
|
|
|
## 设计师专属
|
|
|
|
|
|
|
|
安装 [Kitchen Sketch 插件 💎](https://kitchen.alipay.com/),两步就可以自动生成 Ant Design 表格组件。
|
|
|
|
|
|
|
|
## 何时使用
|
|
|
|
|
|
|
|
- 当有大量结构化的数据需要展现时;
|
|
|
|
- 当需要对数据进行排序、搜索、分页、自定义操作等复杂行为时。
|
|
|
|
|
|
|
|
## 如何使用
|
|
|
|
|
|
|
|
指定表格的数据源 `dataSource` 为一个数组。
|
|
|
|
|
|
|
|
```jsx
|
|
|
|
const dataSource = [{
|
|
|
|
key: '1',
|
|
|
|
name: '胡彦斌',
|
|
|
|
age: 32,
|
|
|
|
address: '西湖区湖底公园1号'
|
|
|
|
}, {
|
|
|
|
key: '2',
|
|
|
|
name: '胡彦祖',
|
|
|
|
age: 42,
|
|
|
|
address: '西湖区湖底公园1号'
|
|
|
|
}];
|
|
|
|
|
|
|
|
const columns = [{
|
|
|
|
title: '姓名',
|
|
|
|
dataIndex: 'name',
|
|
|
|
key: 'name',
|
|
|
|
}, {
|
|
|
|
title: '年龄',
|
|
|
|
dataIndex: 'age',
|
|
|
|
key: 'age',
|
|
|
|
}, {
|
|
|
|
title: '住址',
|
|
|
|
dataIndex: 'address',
|
|
|
|
key: 'address',
|
|
|
|
}];
|
|
|
|
|
|
|
|
<Table dataSource={dataSource} columns={columns} />
|
|
|
|
```
|
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
|
|
### Table
|
|
|
|
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 |
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
| bordered | 是否展示外边框和列边框 | boolean | false |
|
|
|
|
| childrenColumnName | 指定树形结构的列名 | string\[] | children |
|
|
|
|
| columns | 表格列的配置描述,具体项见下表 | [ColumnProps](https://git.io/vMMXC)\[] | - |
|
|
|
|
| components | 覆盖默认的 table 元素 | [TableComponents](https://git.io/fANxz) | - |
|
|
|
|
| dataSource | 数据数组 | any\[] | |
|
|
|
|
| defaultExpandAllRows | 初始时,是否展开所有行 | boolean | false |
|
|
|
|
| defaultExpandedRowKeys | 默认展开的行 | string\[] | - |
|
|
|
|
| expandedRowKeys | 展开的行,控制属性 | string\[] | - |
|
|
|
|
| expandedRowRender | 额外的展开行 | Function(record, index, indent, expanded):ReactNode | - |
|
|
|
|
| expandIcon | 自定义展开图标,参考[示例](http://react-component.github.io/table/examples/expandIcon.html) | Function(props):ReactNode | - |
|
|
|
|
| expandRowByClick | 通过点击行来展开子行 | boolean | `false` |
|
|
|
|
| footer | 表格尾部 | Function(currentPageData) | |
|
|
|
|
| indentSize | 展示树形数据时,每层缩进的宽度,以 px 为单位 | number | 15 |
|
|
|
|
| loading | 页面是否加载中 | boolean\|[object](https://ant.design/components/spin-cn/#API) ([更多](https://github.com/ant-design/ant-design/issues/4544#issuecomment-271533135)) | false |
|
|
|
|
| locale | 默认文案设置,目前包括排序、过滤、空数据文案 | object | filterConfirm: '确定' <br> filterReset: '重置' <br> emptyText: '暂无数据' <br> [默认值](https://github.com/ant-design/ant-design/issues/575#issuecomment-159169511) |
|
|
|
|
| pagination | 分页器,参考[配置项](#pagination)或 [pagination](/components/pagination/) 文档,设为 false 时不展示和进行分页 | object | |
|
|
|
|
| rowClassName | 表格行的类名 | Function(record, index):string | - |
|
|
|
|
| rowKey | 表格行 key 的取值,可以是字符串或一个函数 | string\|Function(record):string | 'key' |
|
|
|
|
| rowSelection | 表格行是否可选择,[配置项](#rowSelection) | object | null |
|
|
|
|
| scroll | 设置横向或纵向滚动,也可用于指定滚动区域的宽和高,可以设置为像素值,百分比,`true` 和 ['max-content'](https://developer.mozilla.org/zh-CN/docs/Web/CSS/width#max-content) | { x: number \| true, y: number } | - |
|
|
|
|
| showHeader | 是否显示表头 | boolean | true |
|
|
|
|
| size | 表格大小 | default \| middle \| small | default |
|
|
|
|
| title | 表格标题 | Function(currentPageData) | |
|
|
|
|
| onChange | 分页、排序、筛选变化时触发 | Function(pagination, filters, sorter, extra: { currentDataSource: [] }) | |
|
|
|
|
| onExpand | 点击展开图标时触发 | Function(expanded, record) | |
|
|
|
|
| onExpandedRowsChange | 展开的行变化时触发 | Function(expandedRows) | |
|
|
|
|
| onHeaderRow | 设置头部行属性 | Function(column, index) | - |
|
|
|
|
| onRow | 设置行属性 | Function(record, index) | - |
|
|
|
|
|
|
|
|
#### onRow 用法
|
|
|
|
|
|
|
|
适用于 `onRow` `onHeaderRow` `onCell` `onHeaderCell`。
|
|
|
|
|
|
|
|
```jsx
|
|
|
|
<Table
|
|
|
|
onRow={(record) => {
|
|
|
|
return {
|
|
|
|
onClick: (event) => {}, // 点击行
|
|
|
|
onDoubleClick: (event) => {},
|
|
|
|
onContextMenu: (event) => {},
|
|
|
|
onMouseEnter: (event) => {}, // 鼠标移入行
|
|
|
|
onMouseLeave: (event) => {}
|
|
|
|
};
|
|
|
|
}}
|
|
|
|
onHeaderRow={(column) => {
|
|
|
|
return {
|
|
|
|
onClick: () => {}, // 点击表头行
|
|
|
|
};
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
```
|
|
|
|
|