【发布时间】:2020-03-15 09:07:43
【问题描述】:
在他们的npm page上,例子展示了<ReactTable>组件的用法:
import ReactTable from 'react-table'
...
render() {
return (
<ReactTable
data={data}
columns={columns}
/>
)
}
但是,在他们的API Docs 和examples 上,他们都使用useTable。
import { useTable } from 'react-table';
function Table({ columns, data }) {
// Use the state and functions returned from useTable to build your UI
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
} = useTable({
columns,
data,
})
// Render the UI for your table
return (
<table {...getTableProps()}>
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps()}>{column.render('Header')}</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map(
(row, i) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
})}
</tr>
)}
)}
</tbody>
</table>
)
}
...
render () {
return (
<Table columns={columns} data={data} />
)
}
所以,我的问题是:为什么有人会使用钩子(useTable、useFilters 等...)并制作 Table 组件,而他/她只能使用已经提供的组件。 我很确定他们没有忘记更新他们的 npm 页面的示例......或者他们是吗?
【问题讨论】:
-
npm 页面显示“此文档适用于 react-table 的 version 6。”所以npm页面上的github链接不正确。当您执行
yarn add react-table时,您将获得第 6 版,因为第 7 版尚未发布。 -
react-table v7 还不是候选发布版本,这就是为什么他们还没有在 npm 中完全宣传它的原因。在 NPM 页面的底部,您可以看到他们正在寻求赞助以使其成型以供发布。我已经添加了一个关于你为什么要使用它而不是 ReactTable 的答案。
标签: javascript reactjs datagrid react-hooks react-table