Refresh component for React Native (iOS and Android)
Install the package:
npm i react-native-vk-refresh --save
or
yarn add react-native-vk-refresh
import {BaseRefreshComponent, DefaultRefreshComponent, RefreshStatus, RefreshHeader, RefreshFooter} from 'react-native-vk-refresh';
/** 自定义下拉刷新,支持FlatList,ScrollView等滑动组件*/
<BaseRefreshComponent
ContentComponent={FlatList}
renderItem={() => <FlatItemCell/>}
data={[]}
onHeaderRefresh={this._onHeaderRefresh}
onFooterRefresh={this._onFooterRefresh}
autoLoading={true}
/>
/** 系统下拉刷新,支持FlatList*/
<DefaultRefreshComponent
ContentComponent={FlatList}
renderItem={() => <FlatItemCell/>}
data={[]}
onHeaderRefresh={this._onHeaderRefresh}
onFooterRefresh={this._onFooterRefresh}
autoLoading={true}
/>
/** 下拉刷新*/
_onHeaderRefresh = (notify) => {
setTimeout(() => {
// 刷新完成,无提示
notify();
// 刷新成功
notify(RefreshStatus.HeaderFinish);
// 刷新失败
notify(RefreshStatus.HeaderFailure);
}, 2000);
};
/** 上拉加载*/
_onFooterRefresh = (notify) => {
setTimeout(() => {
// 继续加载
notify();
// 加载失败
notify(RefreshStatus.FooterFailure);
// 加载完成,没有更多数据
notify(RefreshStatus.FooterFinish);
}, 2000);
};
/** 支持 ScrollView*/
<RefreshComponent
ContentComponent={ScrollView}
onHeaderRefresh={this._onHeaderRefresh}
>
<FlatItemCell/>
<FlatItemCell/>
<FlatItemCell/>
<FlatItemCell/>
<FlatItemCell/>
</BaseRefreshComponent>
Prop | Type | Optional | Default | Description |
---|---|---|---|---|
...ContentComponent.propTypes | Yes | 传入 ContentComponent 的所有属性 | ||
HeaderComponent | object | Yes | BaseRefreshHeader | 自定义刷新组件,继承 BaseRefreshHeader 并实现所有方法 |
FooterComponent | object | Yes | BaseRefreshFooter | 自定义加载组件,继承 BaseRefreshFooter 并实现所有方法 |
ContentComponent | object | Yes | ScrollView | 内容组件,支持FlatList, ScrollView或第三方滑动组件 |
headerHeight | number | Yes | 60 | 刷新组件高度,自定义组件必须填写 |
onHeaderRefresh | func | Yes | 刷新回调, 带notify(RefreshStatus)参数,通知刷新完成 | |
onFooterRefresh | func | Yes | 加载回调,带notify(RefreshStatus)参数,通知加载完成 | |
autoLoading | bool | Yes | false | 组件加载时,是否自动加载数据 |
MIT