框架
版本
企业版

分页 API

状态

分页状态存储在表格中,具有以下结构:

tsx
export type PaginationState = {
  pageIndex: number
  pageSize: number
}

export type PaginationTableState = {
  pagination: PaginationState
}

export type PaginationInitialTableState = {
  pagination?: Partial<PaginationState>
}
export type PaginationState = {
  pageIndex: number
  pageSize: number
}

export type PaginationTableState = {
  pagination: PaginationState
}

export type PaginationInitialTableState = {
  pagination?: Partial<PaginationState>
}

表格选项

manualPagination

tsx
manualPagination?: boolean
manualPagination?: boolean

启用手动分页。如果此选项设置为 true,表格将不会自动分页行(使用 getPaginationRowModel()),而是期望您在将行传递给表格之前手动进行分页。这对于服务器端分页和聚合非常有用。

pageCount

tsx
pageCount?: number
pageCount?: number

当手动控制分页时,您可以向表格提供一个总的 pageCount 值(如果您知道的话)。如果您不知道有多少页,可以将其设置为 -1。或者,您可以提供一个 rowCount 值,表格将内部计算 pageCount

rowCount

tsx
rowCount?: number
rowCount?: number

当手动控制分页时,您可以向表格提供一个总的 rowCount 值(如果您知道的话)。pageCount 将根据 rowCountpageSize 在内部计算。

autoResetPageIndex

tsx
autoResetPageIndex?: boolean
autoResetPageIndex?: boolean

如果设置为 true,当影响分页的状态更改时(例如,更新 data、筛选条件更改、分组更改等),分页将重置到第一页。

🧠 注意:如果 manualPagination 设置为 true,此选项默认为 false

onPaginationChange

tsx
onPaginationChange?: OnChangeFn<PaginationState>
onPaginationChange?: OnChangeFn<PaginationState>

如果提供了此函数,它将在分页状态更改时被调用,并且您需要自行管理状态。您可以通过 tableOptions.state.pagination 选项将管理后的状态传回表格。

getPaginationRowModel

tsx
getPaginationRowModel?: (table: Table<TData>) => () => RowModel<TData>
getPaginationRowModel?: (table: Table<TData>) => () => RowModel<TData>

返回分页后的行模型,但不进行进一步处理。

默认情况下,分页列会自动重新排序到列列表的开头。如果您更希望删除它们或保持原样,请在此处设置相应的模式。

表格 API

setPagination

tsx
setPagination: (updater: Updater<PaginationState>) => void
setPagination: (updater: Updater<PaginationState>) => void

设置或更新 state.pagination 状态。

resetPagination

tsx
resetPagination: (defaultState?: boolean) => void
resetPagination: (defaultState?: boolean) => void

将 **pagination** 状态重置为 initialState.pagination,或者可以传递 true 来强制将默认的空状态重置为 []

setPageIndex

tsx
setPageIndex: (updater: Updater<number>) => void
setPageIndex: (updater: Updater<number>) => void

使用提供的函数或值更新页码。

resetPageIndex

tsx
resetPageIndex: (defaultState?: boolean) => void
resetPageIndex: (defaultState?: boolean) => void

将页码重置为其初始状态。如果 defaultStatetrue,则页码将重置为 0,无论初始状态如何。

setPageSize

tsx
setPageSize: (updater: Updater<number>) => void
setPageSize: (updater: Updater<number>) => void

使用提供的函数或值更新每页大小。

resetPageSize

tsx
resetPageSize: (defaultState?: boolean) => void
resetPageSize: (defaultState?: boolean) => void

将每页大小重置为其初始状态。如果 defaultStatetrue,则每页大小将重置为 10,无论初始状态如何。

getPageOptions

tsx
getPageOptions: () => number[]
getPageOptions: () => number[]

返回当前页面的页面选项(零索引)的数组。

getCanPreviousPage

tsx
getCanPreviousPage: () => boolean
getCanPreviousPage: () => boolean

返回表格是否可以转到上一页。

getCanNextPage

tsx
getCanNextPage: () => boolean
getCanNextPage: () => boolean

返回表格是否可以转到下一页。

previousPage

tsx
previousPage: () => void
previousPage: () => void

将页码减一,如果可能的话。

nextPage

tsx
nextPage: () => void
nextPage: () => void

将页码加一,如果可能的话。

firstPage

tsx
firstPage: () => void
firstPage: () => void

将页码设置为 0

lastPage

tsx
lastPage: () => void
lastPage: () => void

将页码设置为最后一个可用页面。

getPageCount

tsx
getPageCount: () => number
getPageCount: () => number

返回页数。如果手动分页或控制分页状态,它将直接来自 options.pageCount 表格选项,否则它将通过总行数和当前每页大小从表格数据中计算得出。

getPrePaginationRowModel

tsx
getPrePaginationRowModel: () => RowModel<TData>
getPrePaginationRowModel: () => RowModel<TData>

返回表格应用任何分页之前的行模型。

getPaginationRowModel

tsx
getPaginationRowModel: () => RowModel<TData>
getPaginationRowModel: () => RowModel<TData>

返回表格应用分页之后的行模型。

我们的合作伙伴
Code Rabbit
AG Grid
订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。

订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。