Pagination
A long list can be divided into several pages by 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} />
, mountNode);
import { Pagination } from 'antd';
function onChange(pageNumber) {
console.log('Page: ', pageNumber);
}
ReactDOM.render(
<Pagination showQuickJumper defaultCurrent={2} total={500} onChange={onChange} />,
mountNode
);
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);
import { Pagination } from 'antd';
ReactDOM.render(
<Pagination 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(
<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);
import { Pagination } from 'antd';
function itemRender(current, type, originalElement) {
if (type === 'prev') {
return <a>Previous</a>;
} else 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 |
---|---|---|---|
current | current page number | number | - |
defaultCurrent | default initial page number | number | 1 |
total | total number of data items | number | 0 |
defaultPageSize | default number of data items per page | number | 10 |
pageSize | number of data items per page | number | - |
onChange | a callback function, executed when the page number is changed, and it takes the resulting page number and pageSize as its arguments | Function(page, pageSize) | noop |
showSizeChanger | determine whether pageSize can be changed | boolean | false |
pageSizeOptions | specify the sizeChanger options | string[] | '10', '20', '30', '40' |
onShowSizeChange | a callback function, executed when pageSize is changed | Function(current, size) | noop |
showQuickJumper | determine whether you can jump to pages directly | boolean | false |
size | specify the size of Pagination , can be set to small | string | "" |
simple | whether to use simple mode | boolean | - |
showTotal | to display the total number and range | Function(total, range) | - |
itemRender | to customize item innerHTML | (page, type: 'page' | 'prev' | 'next', originalElement) => React.ReactNode | - |