reactjs - react-table v7 排序行为:当第三次单击列标题时,排序被删除
问题描述
我正在使用反应表 v7。我已将排序添加到我的表中,尽管排序具有这种行为,即当第三次单击标题时,排序被删除。我希望在将排序应用于标题后切换排序,例如,如果我单击标题,现在它按升序排序,然后第二次单击降序,然后第三次单击返回降序,依此类推。只有在单击其他标题时才应删除排序。
这是代码片段
import React from 'react'
import { useSortBy, useTable } from 'react-table'
const Grid = (props) => {
console.log(props)
const { data, columns, showFooter = false, disableSort = false } = props
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
footerGroups
} = useTable({ columns, data, disableSortBy: false }, useSortBy)
return (
<div className="radius_16 bg-white p-3 mt-3">
<div className="table_border">
<table {...getTableProps()} className="table tr_bg mb-0">
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => {
console.log(column)
return <th
{...column.getHeaderProps(column.getSortByToggleProps())}
>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
{column.render('Header')}
{<i className={`fad color_orange cursor_pointer sorting ${column.isSorted ? column.isSortedDesc ? 'fa-sort-down' : 'fa-sort-up' : ''}`} style={{ minWidth: 10 }} />}
</div>
</th>
})}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map(row => {
prepareRow(row)
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return (
<td
{...cell.getCellProps()}
>
{cell.render('Cell')}
</td>
)
})}
</tr>
)
})}
</tbody>
{showFooter && <tfoot>
{footerGroups.map(group => (
<tr {...group.getFooterGroupProps()} className="bg_dark_gray">
{group.headers.map(column => (
<td {...column.getFooterProps()}>{column.render('Footer')}</td>
))}
</tr>
))}
</tfoot>}
</table>
</div>
</div>
)
}
export default Grid
解决方案
推荐阅读
- postgresql - 如何在 PostgreSQL 中使用分区内分区(多级分区或分区分区)
- orbeon - Orbeon Forms - 向导视图自动聚焦第一个字段
- python - Python Problem: applied problem for building function for retrieving the elements from the list
- javascript - 编辑高阶和低阶组件之间的状态
- python - 如何从 Pytorch 中的二维张量列表中获取列
- php - Laravel 插入的数据未保存到数据库中
- shell - 如果超过 15 天,如何编写 shell 脚本来删除包含 PII 数据的日志
- html - 我可以使用 CSS 转换来使我的整个页面容器响应吗?
- r - 使用循环或 IF 函数根据条件在数据框中添加值 - 在 R 代码中
- reactjs - 如何使用 React 在类组件中编写此代码