【问题标题】:I want to sort my entire react table on the basis of one column value我想根据一列值对整个反应表进行排序
【发布时间】:2022-01-12 04:31:26
【问题描述】:
export const COLUMNS = [
    {
        Header : 'Total Cases',
        accessor : 'totalcases',
    },
    {
        Header : 'Active Cases',
        accessor : 'activecases',
    },
    {
        Header : 'Total Recovery',
        accessor : 'recovery',
    },
    {
        Header : 'Total Death',
        accessor : 'deaths',
    },
    {
        Header : 'New Cases',
        accessor : 'newcases',
    },
    
] 

function Table({countryData}) {

    const columns = useMemo(()=> COLUMNS, []);
    const data = useMemo(()=> countryData, []);

    const {
        ....
        setGlobalFilter,
    } =  useTable({
        columns,
        data
    }, useGlobalFilter, useSortBy);

    const{globalFilter} = state;

    return (
        <>
        <GlobalFilter filter={globalFilter} setFilter={setGlobalFilter}/>
        <table {...getTableProps()}>
            <thead>
                
                {headerGroups.map(headerGroup => (
                     <tr {...headerGroup.getHeaderGroupProps()}>
                        {headerGroup.headers.map(column => (
                            <th {...column.getHeaderProps(column.getSortByToggleProps())}>{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>
        </>
    )
}

export default Table

在这里,我想默认根据新案例列对整个表进行排序,并且只希望在活动案例和恢复时切换排序。由于我是新来的反应,我不知道如何提供自定义排序............ ..................................................... ..................................................... ..................................................... ..................................................... ....................

【问题讨论】:

标签: javascript reactjs react-table-v7


【解决方案1】:

您可以使用: columns.sort((a, b) =&gt; (a.accessor &gt; b.accessor ) ? 1 : -1)更多信息在此链接:https://flaviocopes.com/how-to-sort-array-of-objects-by-property-javascript/

【讨论】:

  • 我应该在代码的什么地方做
  • 如果您想按 a-z 排序,只需将此代码 DATANAme.sort((a, b) => (a.accessor > b.accessor ) ? 1 : -1) 放在 Tabel 函数的末尾.
猜你喜欢
  • 2015-10-09
  • 1970-01-01
  • 2022-01-14
  • 2023-04-01
  • 2011-09-30
  • 1970-01-01
  • 2018-11-15
相关资源
最近更新 更多