UNPKG

@wenghongtian/react-virtual-list

Version:
66 lines (65 loc) 1.28 kB
import { ReactNode } from "react"; export type ResponseData<T extends object> = { list: T[]; noMore: boolean; }; export interface Pagination { current: number; pageSize: number; } export type Request<T extends object> = (page: Pagination) => Promise<ResponseData<T>>; export interface CachePosition { index: number; top: number; bottom: number; height: number; } /** * VirtualListProps */ export interface VirtualListProps<T extends object> { /** * 子项渲染函数 */ renderItem(data: T, index: number): ReactNode; /** * 缓存大小 */ bufferSize?: number; /** * 每一项的间距 */ itemOffset?: number; /** * 每一项的最小高度(默认100) */ estimateHeight?: number; /** * 数据为空时渲染 */ empty?: ReactNode; /** * 每一项的key值 */ rowKey?: keyof T; /** * onScroll */ onScroll?: React.UIEventHandler<HTMLDivElement>; /** * 请求函数 */ request: Request<T>; /** * 分页属性 */ pagination?: Pagination; /** * loading时渲染 */ loadingRender?: ReactNode; /** * 没有更多时渲染 */ noMoreRender?: ReactNode; }