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
import { Pagination } from 'antd';
ReactDOM.render(<Pagination defaultCurrent={1} total={50} />, mountNode);import { Pagination } from 'antd';
ReactDOM.render(<Pagination defaultCurrent={6} total={500} />, mountNode);import { Pagination } from 'antd';
function onShowSizeChange(current, pageSize) {
console.log(current, pageSize);
}
ReactDOM.render(
<>
<Pagination
showSizeChanger
onShowSizeChange={onShowSizeChange}
defaultCurrent={3}
total={500}
/>
<br />
<Pagination
showSizeChanger
onShowSizeChange={onShowSizeChange}
defaultCurrent={3}
total={500}
disabled
/>
</>,
mountNode,
);import { Pagination } from 'antd';
function onChange(pageNumber) {
console.log('Page: ', pageNumber);
}
ReactDOM.render(
<>
<Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} />
<br />
<Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} disabled />
</>,
mountNode,
);import { Pagination } from 'antd';
function showTotal(total) {
return `Total ${total} items`;
}
ReactDOM.render(
<>
<Pagination size="small" total={50} />
<Pagination size="small" total={50} showSizeChanger showQuickJumper />
<Pagination size="small" total={50} showTotal={showTotal} />
<Pagination
size="small"
total={50}
disabled
showTotal={showTotal}
showSizeChanger
showQuickJumper
/>
</>,
mountNode,
);- /5
- /5
import { Pagination } from 'antd';
ReactDOM.render(
<>
<Pagination simple defaultCurrent={2} total={50} />
<br />
<Pagination disabled simple defaultCurrent={2} total={50} />
</>,
mountNode,
);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);import { Pagination } from 'antd';
ReactDOM.render(
<>
<Pagination
total={85}
showTotal={total => `Total ${total} items`}
defaultPageSize={20}
defaultCurrent={1}
/>
<br />
<Pagination
total={85}
showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`}
defaultPageSize={20}
defaultCurrent={1}
/>
</>,
mountNode,
);import { Pagination } from 'antd';
ReactDOM.render(
<>
<Pagination
total={85}
showSizeChanger
showQuickJumper
showTotal={total => `Total ${total} items`}
/>
</>,
mountNode,
);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} />| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| current | Current page number | number | - | |
| defaultCurrent | Default initial page number | number | 1 | |
| defaultPageSize | Default number of data items per page | number | 10 | |
| disabled | Disable pagination | boolean | - | |
| hideOnSinglePage | Whether to hide pager on single page | boolean | false | |
| itemRender | To customize item's innerHTML | (page, type: 'page' | 'prev' | 'next', originalElement) => React.ReactNode | - | |
| pageSize | Number of data items per page | number | - | |
| pageSizeOptions | Specify the sizeChanger options | string[] | [10, 20, 50, 100] | |
| showLessItems | Show less page items | boolean | false | |
| showQuickJumper | Determine whether you can jump to pages directly | boolean | { goButton: ReactNode } | false | |
| showSizeChanger | Determine whether to show pageSize select, it will be true when total > 50 | boolean | - | |
| showTitle | Show page item's title | boolean | true | |
| showTotal | To display the total number and range | function(total, range) | - | |
| simple | Whether to use simple mode | boolean | - | |
| size | Specify the size of Pagination, can be set to small | default | small | default | |
| responsive | If size is not specified, Pagination would resize according to the width of the window | boolean | - | |
| total | Total number of data items | number | 0 | |
| onChange | Called when the page number is changed, and it takes the resulting page number and pageSize as its arguments | function(page, pageSize) | - | |
| onShowSizeChange | Called when pageSize is changed | function(current, size) | - |