Pagination

A long list can be divided into several pages using Pagination, and only one page will be loaded at a time.

When To Use#

  • When it will take a long time to load/render all items.

  • If you want to browse the data by navigating through pages.

Examples

Basic pagination.

expand codeexpand code
import { Pagination } from 'antd';

ReactDOM.render(<Pagination defaultCurrent={1} total={50} />, mountNode);

More pages.

expand codeexpand code
import { Pagination } from 'antd';

ReactDOM.render(<Pagination defaultCurrent={6} total={500} />, mountNode);

Change pageSize.

expand codeexpand code
import { Pagination } from 'antd';

function onShowSizeChange(current, pageSize) {
  console.log(current, pageSize);
}

ReactDOM.render(
  <div>
    <Pagination
      showSizeChanger
      onShowSizeChange={onShowSizeChange}
      defaultCurrent={3}
      total={500}
    />
    <br />
    <Pagination
      showSizeChanger
      onShowSizeChange={onShowSizeChange}
      defaultCurrent={3}
      total={500}
      disabled
    />
  </div>,
  mountNode,
);

Jump to a page directly.

expand codeexpand code
import { Pagination } from 'antd';

function onChange(pageNumber) {
  console.log('Page: ', pageNumber);
}

ReactDOM.render(
  <div>
    <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} />
    <br />
    <Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} disabled />
  </div>,
  mountNode,
);

Mini size pagination.

expand codeexpand code
import { Pagination } from 'antd';

function showTotal(total) {
  return `Total ${total} items`;
}

ReactDOM.render(
  <div>
    <Pagination size="small" total={50} />
    <Pagination size="small" total={50} showSizeChanger showQuickJumper />
    <Pagination size="small" total={50} showTotal={showTotal} />
  </div>,
  mountNode,
);
  • /5

Simple mode.

expand codeexpand code
import { Pagination } from 'antd';

ReactDOM.render(<Pagination simple defaultCurrent={2} total={50} />, mountNode);

Controlled page number.

expand codeexpand code
import { Pagination } from 'antd';

class App extends React.Component {
  state = {
    current: 3,
  };

  onChange = page => {
    console.log(page);
    this.setState({
      current: page,
    });
  };

  render() {
    return <Pagination current={this.state.current} onChange={this.onChange} total={50} />;
  }
}

ReactDOM.render(<App />, mountNode);

You can show the total number of data by setting showTotal.

expand codeexpand code
import { Pagination } from 'antd';

ReactDOM.render(
  <div>
    <Pagination
      total={85}
      showTotal={total => `Total ${total} items`}
      pageSize={20}
      defaultCurrent={1}
    />
    <br />
    <Pagination
      total={85}
      showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`}
      pageSize={20}
      defaultCurrent={1}
    />
  </div>,
  mountNode,
);

Use text link for prev and next button.

expand codeexpand code
import { Pagination } from 'antd';

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

ReactDOM.render(<Pagination total={500} itemRender={itemRender} />, mountNode);

API#

<Pagination onChange="{onChange}" total="{50}" />
PropertyDescriptionTypeDefaultVersion
currentCurrent page numbernumber-
defaultCurrentDefault initial page numbernumber1
defaultPageSizeDefault number of data items per pagenumber10
disabledDisable paginationboolean-3.18.0
hideOnSinglePageWhether to hide pager on single pagebooleanfalse3.1.0
itemRenderTo customize item's innerHTML(page, type: 'page' | 'prev' | 'next', originalElement) => React.ReactNode-
pageSizeNumber of data items per pagenumber-
pageSizeOptionsSpecify the sizeChanger optionsstring[]['10', '20', '30', '40']
showLessItemsShow less page itemsbooleanfalse3.16.3
showQuickJumperDetermine whether you can jump to pages directlyboolean | { goButton: ReactNode }false
showSizeChangerDetermine whether pageSize can be changedbooleanfalse
showTitleShow page item's titlebooleantrue
showTotalTo display the total number and rangeFunction(total, range)-
simpleWhether to use simple modeboolean-
sizeSpecify the size of Pagination, can be set to smallstring""
totalTotal number of data itemsnumber0
onChangeCalled when the page number is changed, and it takes the resulting page number and pageSize as its argumentsFunction(page, pageSize)noop
onShowSizeChangeCalled when pageSize is changedFunction(current, size)noop
MenuPageHeader