javascript - Sortering och filtrering av hela paginerade Antd-tabellen
Jag använder Ant Design-biblioteket för projektet och tabellselementet, i synnerhet.
Frågan är hur man får sorterings- och filtreringsfunktionerna att fungera för hela tabellen, inte bara den första paginerade sidan?
Jag letar efter front-end-lösningen eftersom det inte är lämpligt för projektet att skapa back-end-metoderna.
export default class BookTable extends React.PureComponent<BooksTableProps>
{
private readonly columns: ColumnProps<Book>[] = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
defaultSortOrder: 'descend',
sorter: (a, b) => {return a.name.localeCompare(b.name)},
render: (text, record) => <span>{record.name}</span>,
},...
]
render() {
const {
loading,
pagination,
books,
} = this.props;
return (
<div>
<Table
bordered
columns={this.columns}
dataSource={books}
loading={loading}
pagination={pagination}
onChange={this.handleTableChange}
/>
</div>
)
}
}
Svar #1
Det stöds direkt. När du definierar sorter används det för hela dataSource. Så när du klickar på en sorterad kolumn sorteras all din data.
Inte mycket uppenbart, men du kan titta på detta exempel. Om du sorterar efter age - sorteras hela tabellens data.
Svar #2
Om kolumnen har string-värden inställda
sorter: (a, b) => a.name.localeCompare(b.name)
Om kolumnen har integer-värden inställda
sorter: (a, b) => a.number - b.number
Om kolumner bara har knappar, ställ in
sorter: true
För fler sorteringsalternativ: Array Sort Compare-funktion
