zoukankan      html  css  js  c++  java
  • react-infinite-scroller使用

    import React from 'react'
    import InfiniteScroll from 'react-infinite-scroller'
    import axios from 'axios'
    import qs from 'qs'
    import './style.less'
    
    const arr = [ 'a', 'b', 'c', 'd', 'e']
    export default class extends React.PureComponent {
      constructor (props) {
        super(props)
    
        this.state = {
          hasMore: true, // 是否开启下拉加载
          data: [], // 接受我每次的数据
          count: 10, //下拉加载
        }
        
        this.loadMoreData()
      }
    
    
    
      // 加载更多数据
      loadMoreData(){
        const { data, count } = this.state
        // 超过条数 禁止加载
        if (data.length >= count) {
       this.setState({
         hasMore: false 
       },()=>{
        return false
        )
          
        }
        // page 是当前请求第几页数据
        // limit 每页我需要返回的数据条数
        axios.post('https://blogs.zdldove.top/Home/Apis/listWithPage',qs.stringify({page, limit: 20}))
          .then(res => {
            this.setState({
              data: [...data, ...arr], //拼接每次加载的数据 arr是我自定义的数据
              count: res.data.result.count, 
            }, () => {
             console.log(this.state) //查看数据是否已经改变
            })
          })
          .catch(err => console.log(err))
      }
    
      render () {
        const { hasMore } = this.state
    
        return (
          <div className="box">
              {/* 下拉加载 */}
            <InfiniteScroll
              pageStart={0} // 设置初始化请求的页数
              loadMore={()=>this.loadMoreData()}  // 监听的ajax请求
              hasMore={hasMore} // 是否继续监听滚动事件 true 监听 | false 不再监听
            >
              <div className="pages-hoc">
                {
                  this.state.data.map((value, key) => (
                    <p key={key}> {key} </p>
                  ))
                }
              </div>
            </InfiniteScroll>
          </div>
        )
      }
    }
    

     参考网址: https://www.jianshu.com/p/a7462c0255c8

  • 相关阅读:
    工作流程在线编辑
    利用IIS导出,导入快速部署 web站点
    调用CRM自己的Dialogue
    简单粗爆的解决同时布CRM引起的死锁问题
    CRM 2013 自动发送报表
    CRM 2013 中业务流程的
    调试CRM JS开发
    CRM ribbon按钮上引用JS库
    CRM Look Up 解决方案
    Windows Azure 上传 VM
  • 原文地址:https://www.cnblogs.com/shangjun6/p/13984697.html
Copyright © 2011-2022 走看看