在React Table中,要按编号排序的列可以通过自定义排序函数来实现。以下是一种可能的实现方法:
npm install react-table
import { useTable, useSortBy } from 'react-table';
const data = [
{ id: 1, name: 'John Doe', age: 25 },
{ id: 2, name: 'Jane Smith', age: 30 },
// 其他数据项...
];
const columns = [
{ Header: 'ID', accessor: 'id' },
{ Header: 'Name', accessor: 'name' },
{ Header: 'Age', accessor: 'age' },
// 其他列...
];
function MyTable() {
const { headers, rows, prepareRow } = useTable(
{
columns,
data,
initialState: {
sortBy: [{ id: 'id', desc: false }], // 初始按id升序排序
},
},
useSortBy
);
return (
<table>
<thead>
<tr>
{headers.map((column) => (
<th {...column.getHeaderProps(column.getSortByToggleProps())}>
{column.render('Header')}
<span>
{column.isSorted ? (column.isSortedDesc ? ' 🔽' : ' 🔼') : ''}
</span>
</th>
))}
</tr>
</thead>
<tbody>
{rows.map((row) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map((cell) => (
<td {...cell.getCellProps()}>{cell.render('Cell')}</td>
))}
</tr>
);
})}
</tbody>
</table>
);
}
MyTable
组件:function App() {
return (
<div>
<h1>My Table</h1>
<MyTable />
</div>
);
}
这样,你就可以在React Table中实现按编号排序的列。React Table会自动处理排序逻辑,并在表头显示排序图标。如果需要使用其他的自定义组件来渲染表格中的数据,你可以在columns
数组中指定相应的Cell
组件。
领取专属 10元无门槛券
手把手带您无忧上云