@td-design/rn-hooks
Version:
从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率
31 lines (30 loc) • 927 B
TypeScript
import { DependencyList } from 'react';
interface PageParams {
page: number;
pageSize: number;
}
interface Page<T> extends PageParams {
list: T[];
total: number;
totalPage?: number;
}
interface InfiniteScrollOptions<TData> {
manual?: boolean;
refreshDeps?: DependencyList;
onBefore?: () => void;
onSuccess?: (data: TData) => void;
onError?: (error: Error) => void;
onFinally?: (data?: TData, error?: Error) => void;
}
declare function useInfiniteScroll<T>(service: (data: PageParams) => Promise<Page<T>>, options?: InfiniteScrollOptions<Page<T>>): {
data: T[];
loading: boolean;
loadingMore: boolean;
noMoreData: boolean;
error: Error | undefined;
loadMore: () => void;
refresh: () => Promise<Page<T>>;
cancel: () => void;
mutate: import("react").Dispatch<import("react").SetStateAction<Page<T> | undefined>>;
};
export default useInfiniteScroll;