在React中对表格进行升序(asc)或降序(des)排序可以通过以下步骤实现:
useState
钩子函数来创建状态变量。import React, { useState } from 'react';
function Table() {
const [data, setData] = useState([
{ id: 1, name: 'John', age: 25 },
{ id: 2, name: 'Jane', age: 30 },
{ id: 3, name: 'Bob', age: 20 },
]);
const [sortOrder, setSortOrder] = useState('asc');
// 排序逻辑将在后面的步骤中实现
return (
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
{/* 表格数据渲染将在后面的步骤中实现 */}
</tbody>
</table>
);
}
export default Table;
map
函数遍历数据数组,并将每个数据项渲染为表格行。<tbody>
{data.map((item) => (
<tr key={item.id}>
<td>{item.id}</td>
<td>{item.name}</td>
<td>{item.age}</td>
</tr>
))}
</tbody>
function handleSort(column) {
const sortedData = [...data].sort((a, b) => {
if (sortOrder === 'asc') {
return a[column] - b[column];
} else {
return b[column] - a[column];
}
});
setData(sortedData);
setSortOrder(sortOrder === 'asc' ? 'des' : 'asc');
}
<thead>
<tr>
<th onClick={() => handleSort('id')}>
ID {sortOrder === 'asc' ? '↑' : '↓'}
</th>
<th onClick={() => handleSort('name')}>
Name {sortOrder === 'asc' ? '↑' : '↓'}
</th>
<th onClick={() => handleSort('age')}>
Age {sortOrder === 'asc' ? '↑' : '↓'}
</th>
</tr>
</thead>
这样,当用户点击表头时,表格数据将根据点击的列进行升序或降序排序。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云