display: Table family: Data Display
Table
表格,展示行列数据
API
Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
bordered | 是否展示外边框和列边框 | boolean | false |
columns | 表格列的配置描述,具体项见下表 | array | - |
dataSource | 数据数组 | array | - |
sortDirections | 支持的排序方式,取值为 'ascend' 'descend' null,设置在 table props 上对所有列生效 | Array | ['ascend', 'descend', null] |
customStyles | 可自定义所有样式 | Function(defaultStyles):object | - |
onHeaderRow | 设置头部行属性 | Function(column, index) | - |
onRow | 设置行属性 | Function(record, index) | - |
sortIconRender | 排序icon render | Function(column, sortOrder) {} | - |
descIconRender | 字段说明icon render | Function(column) | |
onClickDescIcon | 自定义字段说明icon点击事件 | Function(column, event) | |
rowKey(暂未支持) | 表格行 key 的取值,可以是字符串或一个函数 | string / Function(record):string | 'key' |
onChange | 排序变化时触发 | Function(sorter) |
Column Props
列描述数据对象,是 columns 中的一项。
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
align | 设置列内容的对齐方式 | 'left' / 'right' / 'center' | 'left' |
colSpan | 表头列合并,设置为 0 时,不渲染(暂未支持) | number | 1 |
dataIndex | 列数据在数据项中对应的 key | string | - |
fixed | 列是否固定(固定列需通过customStyles设置fixedTable.left(默认为20)为表格和屏幕左边的距离,详见demo用法) | boolean | false |
key | React 需要的 key,如果已经设置了唯一的 dataIndex ,可以忽略这个属性 |
string | - |
render | 生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引,@return里面可以设置表格行/列合并 | Function(text, record, index) {} | - |
defaultSortOrder | 默认排序顺序 | 'ascend' / 'descend' | - |
sortOrder | 排序的受控属性,外界可用此控制列的排序,可设置为 'ascend' 'descend'
|
string | - |
sorter | 排序函数,本地排序使用一个函数(参考 Array.sort 的 compareFunction),需要服务端排序可设为 true | Function / boolean | - |
sortDirections | 支持的排序方式,取值为 'ascend' 'descend' null | Array | ['ascend', 'descend', null] |
title | 列头显示文字 | string | - |
width | 列宽度 | number | - |
onCell | 设置单元格属性 | Function(record, rowIndex) | - |
onHeaderCell | 设置头部单元格属性 | Function(column) | - |
children | 子列 | array,其中元素是column对象 | - |
onRow 用法
适用于 onRow
onHeaderRow
onCell
onHeaderCell
。
<Table
onRow={(record) => {
return {
onClick: (event) => {}, // 点击行
onLongPress: (event) => {}, // 长按行,H5不支持
onAppear: (event) => {},
onDisappear: (event) => {},
customStyle: (defaultStyle) => {}, // 设置自定义样式
// 仅适用于onCell、onHeaderCell
titleCustomStyle: (defaultStyle) => {}, // 设置标题的自定义样式,
};
}}
onHeaderRow={(column) => {
return {
onClick: () => {}, // 点击表头行
};
}}
/>
注意
按照 React 的规范,所有的组件数组必须绑定 key。在 Table 中,dataSource
和 columns
里的数据值都需要指定 key
值。对于 dataSource
默认将每列数据的 key
属性作为唯一的标识。
如果你的数据没有这个属性,务必使用 rowKey
来指定数据列的主键。若没有指定,控制台会出现以下的提示,表格组件也会出现各类奇怪的错误。
// 比如你的数据主键是 uid
return <Table rowKey="uid" />;
// 或
return <Table rowKey={record => record.uid} />;