@trendmicro/react-table v2.0.2
react-table

React Table
Demo: https://trendmicro-frontend.github.io/react-table
Version 1.x is no longer maintained by 2019/12/06
Friendly reminder Please migrate to 2+ asap.
Installation
Install the latest version of react and react-table:
npm install --save react @trendmicro/react-table @trendmicro/react-paginationsAt this point you can import
@trendmicro/react-tableand its styles in your application as follows:import TableTemplate, { TableWrapper, TableHeader, TableBody, TableRow, TableCell, TableHeaderCell } from '@trendmicro/react-table';
Usage
Table Template
<TableTemplate
hoverable
useFixedHeader
columns={columns}
data={data}
width={500}
/>Custom render
<TableWrapper
columns={columns}
data={data}
width={800}
height={320}
>
{({ cells, data, loader, emptyBody, tableWidth }) => {
return (
<Fragment>
<TableHeader>
<TableRow>
{
cells.map((cell, index) => {
const key = `table_header_cell_${index}`;
const {
title,
width: cellWidth,
} = cell;
return (
<TableHeaderCell
key={key}
width={cellWidth}
>
{ title }
</TableHeaderCell>
);
})
}
</TableRow>
</TableHeader>
<TableBody>
<Scrollbars
style={{
width: tableWidth
}}
>
{
data.map((row, index) => {
const rowKey = `table_row${index}`;
return (
<TableRow key={rowKey}>
{
cells.map((cell, index) => {
const key = `${rowKey}_cell${index}`;
const cellValue = _get(row, cell.dataKey);
return (
<TableCell
key={key}
width={cell.width}
>
{ typeof cell.render === 'function' ? cell.render(cellValue, row, index) : cellValue }
</TableCell>
);
})
}
</TableRow>
);
})
}
</Scrollbars>
</TableBody>
</Fragment>
);
}}
</TableWrapper>API
Properties
TableWrapper
| Name | Type | Default | Description |
|---|---|---|---|
| minimalist | Boolean | false | Specify whether the table should not be bordered. |
| columns | Object[] | [] | The columns config of table, see Column below for details. |
| data | Object[] | [] | Data record array to be rendered. |
| emptyRender | Function | () => { return 'No Data'; } | Empty content render function. |
| emptyText | String | 'No Data' | The text when data is null. |
| height | Number | The height of the table. | |
| loading | Boolean | false | Whether table is loading. |
| loaderRender | Function | Loading content render function. | |
| width | Number(required) | The width of the table. |
TableHeaderCell
| Name | Type | Default | Description |
|---|---|---|---|
| width | Number(required) | The width of the table. |
TableCell
| Name | Type | Default | Description |
|---|---|---|---|
| width | Number(required) | The width of the table. |
TableTemplate
| Name | Type | Default | Description |
|---|---|---|---|
| minimalist | Boolean | false | Specify whether the table should not be bordered. |
| columns | Object[] | [] | The columns config of table, see Column below for details. |
| data | Object[] | [] | Data record array to be rendered. |
| emptyRender | Function | () => { return 'No Data'; } | Empty content render function. |
| emptyText | String | 'No Data' | The text when data is null. |
| height | Number | The height of the table. | |
| hideHeader | Boolean | false | Whether table head is hiden. |
| hoverable | Boolean | false | Whether use row hover style. |
| loading | Boolean | false | Whether table is loading. |
| loaderRender | Function | Loading content render function. | |
| useFixedHeader | Boolean | false | Whether table head is fixed. |
| width | Number(required) | The width of the table. |
Column
| Name | Type | Default | Description |
|---|---|---|---|
| title | React Node or Function(): React Node | Title of this column. | |
| dataKey | String | Display field of the data record. | |
| width | String or Number | 150 | Width of the specific proportion calculation according to the width of the columns. |
| render | Function(value, record, rowIndex) | The render function of cell, has two params: the text of this cell, the record of this row, it's return a react node. |
License
MIT
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
