UNPKG

react-limited-infinite-scroll

Version:
65 lines (51 loc) 2.47 kB
[English README](README.md) ## Limited Infinite Scroll React无限滚动加载组件,加载一定分页后改为手动加载器(因为有些用户不喜欢永远无限加载,可能他们只是想看Footer) [Demo](http://wuxueqian.github.io/demo/react-limited-infinite-scroll/#/) ## 安装 ``` npm install react-limited-infinite-scroll --save-dev ``` ## 使用 ``` import LimitedInfiniteScroll from 'react-limited-infinite-scroll' const { total, list } = this.props.data const items = list.map((item, index) => { return ( <div key={index}> <div>item content</div> </div> ) }) <LimitedInfiniteScroll limit={5} hasMore={total === undefined || items.length < total} spinLoader={<div className="loader">Loading...</div>} mannualLoader={<span style={{fontSize: 20, lineHeight: 1.5, marginTop: 20, marginBottom: 20, display: 'inline-block'}}>Load More</span>} noMore={<div className="loader">No More Items</div>} loadNext={this.loadNextFunc}> {items} </LimitedInfiniteScroll> ``` ## Props | Name | Type | Default | Description| |:---- |:---- |:---- |:----| | `limit` | `Number` | `10` | 分页达到该数量后不再自动滚动加载| | `pageStart` | `Number` | `0` | 起始分页| | `threshold` | `Number` | `200` | 列表底部距离窗口距离少于该临界值时触发`loadNext`| | `hasMore` | `Boolean` | `false` | 是否有更多分页可以加载| | `autoLoad` | `Boolean` | `true` | 是否组件初始化时就直接加载第一页内容| | `useWindow` | `Boolean` | `true` | 事件监听是否附件至`window`, 否则附加至组件的`parentNode`| | `loadNext` | `Function` | | 加载下一页的回调方法| | `spinLoader` | `Element` | | 自动加载指示器元素| | `mannualLoader` | `Element` | | 手动加载指示器元素| | `noMore` | `Element` | `null` | 没有更多分页时的指示器元素| ## 其它 使用React 15.5+的用户,由于PropTypes已经从React主库分离,请安装2.x.x版本 ``` npm install react-limited-infinite-scroll --save-dev ``` 而使用较老版本React的用户,安装1.x.x版本 ``` npm install react-limited-infinite-scroll@~1.0.0 --save-dev ```