前言
想法是在列表下方或上方添加一个div元素,当元素出现在浏览器视口,滚动列表。
用法
初始化
1 | constructor(props) { |
- ioNext是下拉IntersectionObserver对象,ioPrev对应上拉
- nextContainer是需要观察下拉时出现在浏览器视口的元素,prevContainer同理
创建元素
1 | let loadNextMore = <div ref={div => {this.nextContainer=div;}}><Spin tip="loading..." className={styles['loading-tips']} /></div>; |
将loadNextMore、loadPrevMore放在render中return就好,具体用法根据实际情况
监听元素行为
1 | componentDidUpdate() { |
注意
上拉加载的情况,若直接替换state中渲染元素需考虑将上拉加载出来的数据向上偏移一定值。