infiniteQueryOptions
概述
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>;DefinedInitialDataInfiniteOptions→DefinedInitialDataInfiniteOptions & QueryKeyWithDataTag:你通常可以向infiniteQueryOptions传入所有能传给createInfiniteQuery的参数。这些选项可在多次createInfiniteQuery调用及queryClient.infiniteQuery等命令式 API 之间共享。options.queryKey是必需参数,表示用于生成选项的查询键。UndefinedInitialDataInfiniteOptions→UndefinedInitialDataInfiniteOptions & QueryKeyWithDataTag:你通常可以向infiniteQueryOptions传入所有能传给createInfiniteQuery的参数。这些选项可在多次createInfiniteQuery调用及queryClient.infiniteQuery等命令式 API 之间共享。options.queryKey是必需参数,表示用于生成选项的查询键。
调用签名
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 会在首次渲染时跳过加载状态 —— 即使重新拉取失败,列表仍保持可见,并同时显示错误:
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>调用签名
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 均可复用同一选项对象:
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 构建。参见上方类型定义以了解其变更内容。