Pagination APIs
状态 (State)
分页状态以以下形式存储在表格中:
export type PaginationState = {
pageIndex: number
pageSize: number
}
export type PaginationTableState = {
pagination: PaginationState
}
export type PaginationInitialTableState = {
pagination?: Partial<PaginationState>
}
表格选项 (Table Options)
manualPagination
manualPagination?: boolean
启用手动分页。如果此选项设置为 true,表格将不会使用 getPaginationRowModel() 自动分页行,而是期望你在将行传递给表格之前手动分页。这在你进行服务器端分页和聚合时很有用。
pageCount
pageCount?: number
当手动控制分页时,如果你知道总页数,可以为表格提供一个 pageCount 值。如果你不知道有多少页,可以将其设置为 -1。或者,你可以提供一个 rowCount 值,表格将内部计算 pageCount。
rowCount
rowCount?: number
当手动控制分页时,如果你知道总行数,可以为表格提供一个 rowCount 值。pageCount 将根据 rowCount 和 pageSize 在内部计算。
autoResetPageIndex
autoResetPageIndex?: boolean
如果设置为 true,当更改页面状态时(例如数据更新、筛选器更改、分组更改等),分页将重置为第一页。
注意:如果
manualPagination设置为true,此选项默认为false。
onPaginationChange
onPaginationChange?: OnChangeFn<PaginationState>
如果提供此函数,当分页状态更改时将调用它,你需要自行管理状态。你可以通过 tableOptions.state.pagination 选项将管理的状态传递回表格。
getPaginationRowModel
getPaginationRowModel?: (table: Table<TData>) => () => RowModel<TData>
返回分页后但未进一步处理的行模型。
默认情况下,分页列会自动重新排序到列列表的开头。如果你更喜欢移除它们或保持原样,请在此处设置相应的模式。
表格 API (Table API)
setPagination
setPagination: (updater: Updater<PaginationState>) => void
设置或更新 state.pagination 状态。
resetPagination
resetPagination: (defaultState?: boolean) => void
将 pagination 状态重置为 initialState.pagination,或者可以传递 true 来强制重置为默认的空白状态 []。
setPageIndex
setPageIndex: (updater: Updater<number>) => void
使用提供的函数或值更新页面索引。
resetPageIndex
resetPageIndex: (defaultState?: boolean) => void
将页面索引重置为其初始状态。如果 defaultState 为 true,无论初始状态如何,页面索引都将重置为 0。
setPageSize
setPageSize: (updater: Updater<number>) => void
使用提供的函数或值更新页面大小。
resetPageSize
resetPageSize: (defaultState?: boolean) => void
将页面大小重置为其初始状态。如果 defaultState 为 true,无论初始状态如何,页面大小都将重置为 10。
getPageOptions
getPageOptions: () => number[]
返回当前页面大小的页面选项数组(从零开始索引)。
getCanPreviousPage
getCanPreviousPage: () => boolean
返回表格是否可以转到上一页。
getCanNextPage
getCanNextPage: () => boolean
返回表格是否可以转到下一页。
previousPage
previousPage: () => void
如果可能,将页面索引减一。
nextPage
nextPage: () => void
如果可能,将页面索引加一。
firstPage
firstPage: () => void
将页面索引设置为 0。
lastPage
lastPage: () => void
将页面索引设置为最后一个可用页面。
getPageCount
getPageCount: () => number
返回页数。如果手动分页或控制分页状态,这将直接来自 options.pageCount 表格选项,否则将根据总行数和当前页面大小从表格数据中计算。
getPrePaginationRowModel
getPrePaginationRowModel: () => RowModel<TData>
返回在应用任何分页之前表格的行模型。
getPaginationRowModel
getPaginationRowModel: () => RowModel<TData>
返回在应用分页之后表格的行模型。