@rax-ui/table
v1.0.0-beta.12
Published
--- display: Table family: Data Display ---
Downloads
7
Readme
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} />;