您好,登錄后才能下訂單哦!
在React中實現表格排序和過濾功能可以通過以下步驟實現:
const [tableData, setTableData] = useState([...]); // 表格數據
const [sortKey, setSortKey] = useState(''); // 排序字段
const [sortOrder, setSortOrder] = useState('asc'); // 排序順序
const [filterText, setFilterText] = useState(''); // 過濾文本
const handleSort = (key) => {
let order = 'asc';
if (key === sortKey && sortOrder === 'asc') {
order = 'desc';
}
setSortKey(key);
setSortOrder(order);
const sortedData = tableData.sort((a, b) => {
if (order === 'asc') {
return a[key] > b[key] ? 1 : -1;
} else {
return a[key] < b[key] ? 1 : -1;
}
});
setTableData([...sortedData]);
}
const handleFilter = (text) => {
setFilterText(text);
const filteredData = tableData.filter(item => {
return Object.values(item).some(value => value.includes(text));
});
setTableData([...filteredData]);
}
<table>
<thead>
<tr>
<th onClick={() => handleSort('column1')}>Column 1</th>
<th onClick={() => handleSort('column2')}>Column 2</th>
<th onClick={() => handleSort('column3')}>Column 3</th>
</tr>
<tr>
<th><input type="text" value={filterText} onChange={(e) => handleFilter(e.target.value)} /></th>
</tr>
</thead>
<tbody>
{tableData.map((item, index) => (
<tr key={index}>
<td>{item.column1}</td>
<td>{item.column2}</td>
<td>{item.column3}</td>
</tr>
))}
</tbody>
</table>
通過以上步驟,可以在React中實現表格排序和過濾功能。當用戶點擊表頭進行排序或輸入搜索文本進行過濾時,表格數據將會根據排序條件和過濾條件進行相應的操作。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。