/** * @componentName Pager * @describe -- 分页列表组件 * @author liulei * @since 12.13 开发完成 * */ import Taro, { Component } from '@tarojs/taro'; import { ScrollView } from '@tarojs/components'; interface IProps { /** 请求列表数据的异步方法,页码改变时触发 */ onChange: (page: number) => void; /** 下拉刷新回调函数 */ onPullDown?: () => void; /** 当前页码 */ current: number; /** 列表总条目,用于计算总页数 */ total: number; /** 每页显示数量,选填,默认20 */ page_size?: number; } interface IState { scrollY: boolean, } class Pager extends Component { static defaultProps = { current: 1, page_size: 20, onChange: () => {}, onPullDown: () => {}, } constructor(props) { super(props); this.state = { scrollY: true, }; } onScrollToLower = () => { const { onChange, total, page_size, current } = this.props; const pageNum = Math.ceil(total / (page_size || 20)); if (!onChange) return; if (current < pageNum) { onChange(current + 1); } } render() { const { scrollY } = this.state; return ( {this.props.children} ); } } export default Pager;