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.
Install the latest version of react and react-table :
npm install --save react @trendmicro/react-table @trendmicro/react-paginations
At this point you can import @trendmicro/react-table
and its styles in your application as follows:
import TableTemplate , { TableWrapper , TableHeader , TableBody , TableRow , TableCell , TableHeaderCell } from '@trendmicro/react-table' ;
< TableTemplate
hoverable
useFixedHeader
columns = { columns }
data = { data }
width = { 500 }
/>
< 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 >
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.
Name
Type
Default
Description
width
Number(required)
The width of the table.
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.
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.
MIT