簡體   English   中英

如何在反應中使用antd表中的自定義分頁?

[英]how to use custom pagination in antd table in react?

我正在使用 antd 表格分頁,我想自定義分頁。 表內的數據將檢索 50 條記錄/API 調用。 表格內的數據將顯示10條記錄/頁。 如果系統中有剩余數據但尚未檢索,則分頁上的下一步按鈕將被啟用,否則將被禁用。 例如,系統中有 100 條記錄。 第一個 API 調用將獲得 50 條最新記錄(沒有 100 - 50)並將呈現到表中。 由於一頁將顯示 10 條記錄,因此它將分為 5 頁。 用戶到達第 5 頁后,下一步按鈕將可用,因為系統中還有 50 條記錄。 如果用戶單擊下一步,將第二次調用 API 並附加表內的數據,總頁數將為 10,因為已檢索到所有數據。 在第二次 API 調用后,下一步按鈕將被禁用,用戶只能將 go 轉到第 10 頁的最后一頁。

建議我一個合適的方法。

<Table
   columns={columns}
   dataSource={tableinfo.data_source}
   pagination={false}
/>

<Pagination 
   total={500} 
   itemRender={itemRender} 
/>

const itemRender = (current, type, originalElement) => {
      if (type === 'prev') {
        return <a>Previous</a>;
      }
      if (type === 'next') {
        return <a>Next</a>;
      }
      return originalElement;
    }

最簡單的方法是為pageSizepageIndex定義本地狀態。 假設您有一個 api ,它返回元素的總命中數, antd 分頁可以處理所描述的按鈕行為,而無需對您的代碼進行任何額外的更改。

例如:您要獲取頁面大小為10的第2頁,總共有 123 個元素

{
  results, // Array containing elements 20-30
  hitCount // 123
}

您的代碼可能看起來像

const [pageIndex, setPageIndex] = useState(0);
const [pageSize, setPageSize] = useState(10);

const hitCount = <obtained from the api call>

...

<Pagination current={pageIndex} total={hitcount} onChange={(page, size) => {setPageIndex(page); setPageSize(size)}} />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM