Table / 表格
以规则的表格显示数据集。
基础的
显示规则化的行和列。
组合
在表格中显示其他组件。
宽度
为任意列指定宽度,剩下列会自动适应。
操作
显示自定义的按钮并操作数据,任何更改会立刻呈现。
更新行
你可以更新指定的行数据。
定制头
TypeScript 示例
在 TS 中通过指定泛型获得更好的体验。
type User = {
name: string
role: string
records: Array<{ date: string }>
}
const renderHandler: TableColumnRender<User> = (value, rowData, index) => {
return <div>{rowData.date}</div>
}
const data: Array<User> = [
{ name: 'witt', role: 'admin', records: [{ date: '2021-05-01' }] },
]
const MyComponent = () => (
<Table<User> data={data}>
<Table.Column<User> prop="name" label="用户名" />
<Table.Column<User> prop="role" label="角色" />
<Table.Column<User> prop="records" label="记录" render={renderHandler} />
</Table>
)
APIs / 接口文档
Table.Props
属性 | 描述 | 类型 | 推荐值 | 默认 |
---|---|---|---|---|
data | 数据源 | Array<T> | - | - |
initialData | 初始数据 | Array<T> | - | [] |
emptyText | 当数据为空时显示的文本 | string | - | - |
hover | 是否显示 hover 效果 | boolean | - | true |
onRow | 行的点击事件 | TableOnRowClick | - | - |
onCell | 单元格的点击事件 | TableOnCellClick | - | - |
onChange | 数据变化的事件 | (data: T) => void | - | - |
rowClassName | 为每一行设置类名 | TableRowClassNameHandler | - | - |
... | 原生属性 | TableHTMLAttributes | 'id', 'name', ... | - |
Table.Column.Props
属性 | 描述 | 类型 | 推荐值 | 默认 |
---|---|---|---|---|
prop(必须的) | 列对应的数据属性 | string | - | - |
label | 每一列的标签文本 | string | - | - |
width | 指定宽度 | number | - | - |
className | 指定当前列的类名 | string | - | - |
render | 为所有列渲染函数返回的数据 | TableColumnRender | - | - |
TableOnRowClick
type TableOnRowClick<T> = (rowData: T, rowIndex: number) => void
TableOnCellClick
type TableOnCellClick<T> = (
value: T[keyof T],
rowIndex: number,
colunmIndex: number,
) => void
TableRowClassNameHandler
type TableRowClassNameHandler<T> = (rowData: T, rowIndex: number) => string
TableColumnRender
type TableColumnRender<T extends Record> = (
value: T[keyof T],
rowData: T,
rowIndex: number,
) => JSX.Element | void
文档贡献者