译零 TransZero · TanStack Query 中文文档
主站

infiniteQueryOptions

更新于 2026-11-02 Svelte 查看英文原文 ↗

概述

TypeScript
1function infiniteQueryOptions<TQueryFnData, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;2function infiniteQueryOptions<TQueryFnData, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;

另请参阅:参数 · 返回值

调用签名

TypeScript
1function infiniteQueryOptions<TQueryFnData, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;

定义于:packages/svelte-query/src/infiniteQueryOptions.ts:99

你通常可以向 infiniteQueryOptions 传入所有能传给 createInfiniteQuery 的参数。
这些选项可在多次 createInfiniteQuery 调用及 queryClient.infiniteQuery 等命令式 API 之间共享。
options.queryKey 是必需参数,表示用于生成选项的查询键。

当 initialData 已知为已定义时,将选用此重载。

类型参数

TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = InfiniteData<TQueryFnData, unknown>

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数

options

DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

要使用的 DefinedInitialDataInfiniteOptions —— 即所有可传给 createInfiniteQuery 的参数,且 initialData 已知为已定义。

返回值

DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>

相同选项对象,其类型被约束为使 queryKey 携带推断出的数据类型。

参阅

使用 createInfiniteQuery 运行具有这些选项的无限查询。

示例

initialData 会在首次渲染时跳过加载状态 —— 即使重新拉取失败,列表仍保持可见,并同时显示错误:

svelte
1<script lang="ts">2  import { infiniteQueryOptions, createInfiniteQuery } from '@tanstack/svelte-query'3 4  const projectsOptions = infiniteQueryOptions({5    queryKey: ['projects'],6    queryFn: ({ pageParam }) => fetchProjects(pageParam),7    initialPageParam: 0,8    getNextPageParam: (lastPage) => lastPage.nextId,9    initialData: { pages: [], pageParams: [] },10  })11 12  const query = createInfiniteQuery(() => projectsOptions)13</script>14 15{#if query.isError}16  <span>Error: {query.error.message}</span>17{/if}18<ul>19  {#each query.data.pages as page}20    {#each page.projects as project (project.id)}21      <li>{project.name}</li>22    {/each}23  {/each}24</ul>

调用签名

TypeScript
1function infiniteQueryOptions<TQueryFnData, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;

定义于:packages/svelte-query/src/infiniteQueryOptions.ts:164

你通常可以向 infiniteQueryOptions 传入所有能传给 createInfiniteQuery 的参数。
这些选项可在多次 createInfiniteQuery 调用及 queryClient.infiniteQuery 等命令式 API 之间共享。
options.queryKey 是必需参数,表示用于生成选项的查询键。

类型参数

TQueryFnData

TQueryFnData

TError

TError = Error

TData

TData = InfiniteData<TQueryFnData, unknown>

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数

options

UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

要使用的 UndefinedInitialDataInfiniteOptions —— 即所有可传给 createInfiniteQuery 的参数。

返回值

UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>

相同选项对象,其类型被约束为使 queryKey 携带推断出的数据类型。

参阅

使用 createInfiniteQuery 运行具有这些选项的无限查询。

示例

一个参数化工厂函数,以便每个 postId 均可复用同一选项对象:

svelte
1<script lang="ts">2  import { infiniteQueryOptions, createInfiniteQuery } from '@tanstack/svelte-query'3 4  let { postId }: { postId: string } = $props()5 6  const commentsOptions = (postId: string) =>7    infiniteQueryOptions({8      queryKey: ['post', postId, 'comments'],9      queryFn: ({ pageParam }) => fetchComments(postId, pageParam),10      initialPageParam: 0,11      getNextPageParam: (lastPage) => lastPage.nextId,12    })13 14  const query = createInfiniteQuery(() => commentsOptions(postId))15</script>16 17{#if query.isPending}18  Loading...19{:else if query.isError}20  <span>Error: {query.error.message}</span>21{:else}22  <ul>23    {#each query.data.pages as page}24      {#each page.comments as comment (comment.id)}25        <li>{comment.text}</li>26      {/each}27    {/each}28  </ul>29{/if}

参数

options

UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>

要使用的 UndefinedInitialDataInfiniteOptions —— 即所有可传给 createInfiniteQuery 的参数。

options 属性

基于 InfiniteQueryObserverOptions 构建。参见上方类型定义以了解其变更内容。

返回值

UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>

相同选项对象,其类型被约束为使 queryKey 携带推断出的数据类型。

返回值属性

基于 InfiniteQueryObserverOptions、QueryKeyWithDataTag 构建。参见上方类型定义以了解其变更内容。

本页为 TanStack Query 文档(Svelte 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de