1.3.15 • Published 4 years ago

rmc-pagelist v1.3.15

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
4 years ago

PageList

移动端分页加载 & 下拉刷新列表 react 组件

npm

npm install -S rmc-pagelist

特点

列表分页加载,下拉刷新,易于使用

Demo

建议查看 Demo 源码来理解组件:view source

注意

使用时需要用样式约束组件的高度。

<PageList style={{ height: 200 }}>
</PageList>

或者 使用 height 属性来约束组件的高度

<PageList height={() => document.documentElement.clientHeight / 2}>
</PageList>

建议使用绝对布局定位来约束高度:

<PageList className="list">
</PageList>
.list {
  position: fixed;
  top: 40px; // 列表上方留空
  bottom: 88px; // 列表下方留空
  left: 0;
  right: 0;
}

属性

  • height: 必须传。定义一个高度给列表作为滚动区域
  • loadPage:必须传。分页加载数据的Promise,方法需返回一个Promise<{ hasMore, list }>
  • pullRefreshLoad:可选。下拉刷新列表的Promise,方法需返回一个Promise<{ hasMore, list }>。不传则关闭列表的下拉刷新功能
  • listReloadKey:可选。这个属性值变化后,会让列表重置,重新从第一页开始加载。使用场景:列表的筛选条件发生变化后,改变这个值传入
  • renderPageLoading:可选。整页加载样式,默认仅在第一页加载时展示
  • renderPageError:可选。整页错误样式,默认仅在第一页出错时展示
  • renderPageEmpty:可选。整页空数据样式
  • renderListNormalFoot:可选。列表底部的默认样式
  • renderListLoadingFoot:可选。列表底部的加载中样式
  • renderListNoMoreFoot:可选。列表底部的无更多数据样式
  • renderListErrorFoot:可选。列表底部错误样式
  • renderListNormalHead:可选。下拉刷新的列表顶部默认样式
  • renderListReadyHead:可选。下拉刷新的列表顶部,下拉足够距离后,松开可以刷新列表的样式
  • renderListRefreshingHead:可选。下拉刷新的列表顶部刷新中的样式
  • defaultPageNo:可选。初始默认页码
  • defaultHasMore:可选。初始是否有下一页数据

AntmPageList

如果在口碑掌柜里,请使用 AntmPageList 以符合口碑掌柜视觉规范 (只要引用了antmV1都建议用)

import AntmPageList from 'rmc-pagelist/AntmPageList';

引用了antmV2 的请使用 Antm2PageList

组件行为详细说明

loadPage 属性需要返回一个 Promise 对象,Promise 的不同行为会导致不同的展示。

情景1

加载结束,并告诉组件还有下一页,组件会在滑到底部的时候触发 loadPage,底部展示 renderListLoadingFoot

loadPage(pageNo) {
    return new Promise((resolve, reject) => {
        ...
        resolve({
         hasMore: true,
         list, // list 传入本次加载出来的列表条目
        });
    });
}

情景2

加载结束,并告诉组件没有下一页了,组件滑到底部不会触发加载下一页,底部展示无更多样式 renderListNoMoreFoot

loadPage(pageNo) {
    return new Promise((resolve, reject) => {
        ...
        resolve({
         hasMore: false,
         list, // list 传入本次加载出来的列表条目
        });
    });
}

情景3

加载失败。展示 renderPageError || renderListErrorFoot,同时会露出重试按钮,用户点击会重新触发 loadPage

loadPage(pageNo) {
    return new Promise((resolve, reject) => {
        ...
        reject(new Error('错误文案'));
    });
}

情景4

首屏加载到空数据。展示 renderPageError 空数据样式(仅在第一页展示)

loadPage(pageNo) {
    return new Promise((resolve, reject) => {
        ...
        resolve({
         hasMore: false,
         list: [], // 本次加载出来的列表条目为空
        });
    });
}

建议查看 Demo 源码来理解组件:view source

1.3.15

4 years ago

1.3.14

4 years ago

1.3.13

5 years ago

1.3.12

5 years ago

1.3.11

5 years ago

1.3.10

5 years ago

1.3.9

5 years ago

1.3.8

5 years ago

1.3.7

6 years ago

1.3.6

6 years ago

1.3.5

7 years ago

1.3.4

7 years ago

1.3.4-beta.2

7 years ago

1.3.4-beta.1

7 years ago

1.3.3

7 years ago

1.3.2

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.2.0-beta.1

8 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.1-beta11

8 years ago

1.1.1-beta10

8 years ago

1.1.1-beta.8

8 years ago

1.1.1-beta.7

8 years ago

1.1.1-beta.6

8 years ago

1.1.1-beta.5

8 years ago

1.1.1-beta.4

8 years ago

1.1.1-beta.3

8 years ago

1.1.1-beta.2

8 years ago

1.1.1-beta1

8 years ago

1.1.0

8 years ago

1.0.8-beta.1

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago