useInfiniteQuery<TData, TError, TPageParam> function

InfiniteQuerySnapshot<TData, TError, TPageParam> useInfiniteQuery<TData, TError, TPageParam>(
  1. List<Object?> queryKey,
  2. InfiniteQueryFn<TData, TPageParam> queryFn, {
  3. required TPageParam initialPageParam,
  4. required NextPageParamBuilder<TData, TPageParam> nextPageParamBuilder,
  5. PrevPageParamBuilder<TData, TPageParam>? prevPageParamBuilder,
  6. int? maxPages,
  7. bool? enabled,
  8. NetworkMode? networkMode,
  9. StaleDuration? staleDuration,
  10. GcDuration? gcDuration,
  11. InfiniteData<TData, TPageParam>? placeholder,
  12. RefetchOnMount? refetchOnMount,
  13. RefetchOnResume? refetchOnResume,
  14. RefetchOnReconnect? refetchOnReconnect,
  15. Duration? refetchInterval,
  16. RetryResolver<TError>? retry,
  17. bool? retryOnMount,
  18. InfiniteData<TData, TPageParam>? seed,
  19. DateTime? seedUpdatedAt,
  20. Map<String, dynamic>? meta,
  21. ShouldRebuild<InfiniteQuerySnapshot<TData, TError, TPageParam>>? shouldRebuild,
  22. QueryClient? client,
})

A hook for fetching and caching paginated data with automatic page accumulation.

Equivalent to the canonical useInfiniteQuery, but returns an InfiniteQuerySnapshot: a sealed type that supports exhaustive pattern matching and exposes non-nullable data/error in the InfiniteQuerySuccess/InfiniteQueryError variants.

This is an experimental API exposed via package:flutter_query/experiments.dart. See the canonical useInfiniteQuery for the meaning of every option.

This is an experimental API and may change in a future minor release.

Implementation

InfiniteQuerySnapshot<TData, TError, TPageParam>
    useInfiniteQuery<TData, TError, TPageParam>(
  List<Object?> queryKey,
  InfiniteQueryFn<TData, TPageParam> queryFn, {
  required TPageParam initialPageParam,
  required NextPageParamBuilder<TData, TPageParam> nextPageParamBuilder,
  PrevPageParamBuilder<TData, TPageParam>? prevPageParamBuilder,
  int? maxPages,
  bool? enabled,
  NetworkMode? networkMode,
  StaleDuration? staleDuration,
  GcDuration? gcDuration,
  InfiniteData<TData, TPageParam>? placeholder,
  RefetchOnMount? refetchOnMount,
  RefetchOnResume? refetchOnResume,
  RefetchOnReconnect? refetchOnReconnect,
  Duration? refetchInterval,
  RetryResolver<TError>? retry,
  bool? retryOnMount,
  InfiniteData<TData, TPageParam>? seed,
  DateTime? seedUpdatedAt,
  Map<String, dynamic>? meta,
  ShouldRebuild<InfiniteQuerySnapshot<TData, TError, TPageParam>>?
      shouldRebuild,
  QueryClient? client,
}) {
  final result = core.useInfiniteQuery<TData, TError, TPageParam>(
    queryKey,
    queryFn,
    initialPageParam: initialPageParam,
    nextPageParamBuilder: nextPageParamBuilder,
    prevPageParamBuilder: prevPageParamBuilder,
    maxPages: maxPages,
    enabled: enabled,
    networkMode: networkMode,
    staleDuration: staleDuration,
    gcDuration: gcDuration,
    placeholder: placeholder,
    refetchOnMount: refetchOnMount,
    refetchOnResume: refetchOnResume,
    refetchOnReconnect: refetchOnReconnect,
    refetchInterval: refetchInterval,
    retry: retry,
    retryOnMount: retryOnMount,
    seed: seed,
    seedUpdatedAt: seedUpdatedAt,
    meta: meta,
    shouldRebuild: shouldRebuild == null
        ? null
        : (previous, next) =>
            shouldRebuild(previous.toSnapshot(), next.toSnapshot()),
    client: client,
  );

  return result.toSnapshot();
}