import { Pagination } from 'antd'; class PageComponent extends React.Component { constructor(props) { super(props); this.state = { data: [], // 分页数据 currentPage: 1, // 当前页码 pageSize: 10, // 每页显示条数 total: 0 // 数据总数 }; } // 获取分页数据 fetchData = (page, pageSize) => { // 根据当前页码和每页显示条数获取数据 // 这里只是一个示例,实际项目中要根据实际需求进行修改 const data = [ { id: 1, name: '张三', age: 20 }, { id: 2, name: '李四', age: 22 }, { id: 3, name: '王五', age: 24 } ]; const total = 3; // 数据总数 this.setState({ data, total }); }; // 处理页码改变事件 handlePageChange = (page, pageSize) => { this.setState( { currentPage: page, pageSize }, () => { this.fetchData(page, pageSize); } ); }; // 渲染分页数据 renderData = data => { return data.map(item => { return ( <div key={item.id}> <p>姓名:{item.name}</p> <p>年龄:{item.age}</p> </div> ); }); }; render() { const { data, currentPage, pageSize, total } = this.state; return ( <div> {this.renderData(data)} <Pagination current={currentPage} pageSize={pageSize} total={total} onChange={this.handlePageChange} /> </div> ); } } export default PageComponent; 帮我细心讲解下
时间: 2024-02-15 07:27:55 浏览: 97
这段代码是一个基于 Ant Design 组件库的分页组件 PageComponent,它的主要作用是用于展示分页数据,并且可以处理用户的分页操作。
在组件的 constructor 中定义了组件的状态 state,包括 data(分页数据)、currentPage(当前页码)、pageSize(每页显示条数)和 total(数据总数),初始值分别为一个空数组、1、10 和 0。
fetchData 方法是用于获取分页数据的函数,它接收两个参数:page(当前页码)和 pageSize(每页显示条数),这里只是一个示例,实际项目中需要根据实际需求进行修改。在这个示例中,fetchData 方法会返回一个包含三条数据的数组,然后将这些数据和数据总数(这里是固定值 3)存储到 state 中。
handlePageChange 方法是用于处理页码改变事件的函数,它接收两个参数:page(当前页码)和 pageSize(每页显示条数)。当用户改变了页码或每页显示条数时,它会先将新的页码和每页显示条数存储到 state 中,然后再调用 fetchData 方法获取新的分页数据。
renderData 方法是用于渲染分页数据的函数,它接收一个数据数组作为参数,然后将每条数据渲染成一个包含姓名和年龄的 div 元素,并返回一个包含这些 div 元素的数组。
最后,在 render 方法中,首先调用 renderData 方法渲染分页数据,然后将当前页码、每页显示条数和数据总数作为 props 传递给 Ant Design 的 Pagination 组件,以便显示分页组件,并且将 handlePageChange 方法作为 onChange 事件的回调函数,用于处理用户的分页操作。
阅读全文