Giter Site home page Giter Site logo

react-scroll-mobile's Introduction

react-scroll-mobile


  1. react移动端滚动组件,支持上拉加载、下拉刷新、返回顶部。
  2. 项目源码
  3. 觉得好用给个star,谢啦!

example

erweima

Install

npm install react-scroll-mobile

yarn add react-scroll-mobile

Usage

import Scroll from 'react-scroll-mobile'

const timeout = delay => new Promise(resolve => setTimeout(resolve,delay));

class App extends Component {

  state = {
    list:[],
    noMore: false
  }

  pageIndex = 1;

  componentDidMount(){
    //首次加载时,可以主动触发下拉加载动效,更炫酷
    this.scrollRef.pullDownRefresh(this.pullDownRefresh)
  }

  pullDownRefresh = async ()=>{
    this.pageIndex = 1;
    await this.getData();
  };

  pullUpLoad = async ()=>{
    this.pageIndex ++;
    await this.getData();
  };

  getData = async ()=>{
    //模拟请求和数据
    await timeout(1000);
    let res = [0,1,2,3,4,5,6,7,8,9];
    // 模拟没有数据了 
    if(this.pageIndex > 4 )res = [];

    const list = this.pageIndex === 1 ? res : this.state.list.concat(res);
    this.setState({ 
      list,
      noMore: res.length === 0 
    })
  }

  render() {
    const { list, noMore } = this.state;

    return (
      <div className='list'>
        <Scroll
          ref={el=> this.scrollRef = el}
          pullDownRefresh={this.pullDownRefresh}
          pullUpLoad={this.pullUpLoad}
          noMore={noMore}
          backTop
        >
          <ul>
            {
              list.map((item,index)=><li key={index}>数据数据数据数据{index}</li>)
            }
          </ul>
        </Scroll>
      </div>
    );
  }
}

export default App;

API

选项

属性 类型 默认值 说明
pullDownRefresh Function null 下拉刷新时的回调函数,需要返回一个Promise来获取刷新状态,resolve刷新成功,reject刷新失败,建议直接使用async await
pullUpLoad Function null 上拉加载时的回调函数,需要返回一个Promise来获取加载状态,resolve加载成功,reject加载失败,建议直接使用async await
noMore Boolean false 上拉加载时,是否还有更多数据
noMoreTip String/ReactComponent '我是有底线的' 上拉加载时,没有更多数据的提示语
backTop Boolean/ReactComponent false 右下角返回顶部组件,设置为true时显示自带的组件,设置为ReactComponent是即使用自定义的返回顶部组件替换

react-scroll-mobile's People

Contributors

fuphoenixes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.