CustomPullToRefresh.ets 1.33 KB
import { PullToRefresh, PullToRefreshConfigurator } from '@ohos/pulltorefresh';
import {  LazyDataSource } from 'wdKit';

@Component
export  struct CustomPullToRefresh {
  @Link alldata: Object[] | LazyDataSource<Object>;
  scroller: Scroller = new Scroller();
  @BuilderParam customList: () => void;
  onRefresh: (resolve?: (value: string | PromiseLike<string>) => void) => void = () => {
  }
  onLoadMore: (resolve?: (value: string | PromiseLike<string>) => void) => void = () => {
  }
  ///是否存在上拉更多
  @Prop @Watch('hasMoreChange') hasMore: boolean = true
  refreshConfigurator: PullToRefreshConfigurator = new PullToRefreshConfigurator().setHasLoadMore(this.hasMore);
  build() {
    Column(){
      PullToRefresh({
        data:$alldata,
        scroller:this.scroller,
        refreshConfigurator:this.refreshConfigurator,
        customList:()=>{
           this.customList();
        },
        onRefresh:()=>{
          return new Promise<string>((resolve, reject) => {
            this.onRefresh(resolve)
          });
        },
        onLoadMore:()=>{
          return new Promise<string>((resolve, reject) => {
            this.onLoadMore(resolve)
          });
        },
        customLoad: null,
        customRefresh: null,
      })
    }
  }

  hasMoreChange() {
    this.refreshConfigurator.setHasLoadMore(this.hasMore)
  }
}