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

queryOptions

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

概述

TypeScript
1function queryOptions<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object): ReturnType<DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;2function queryOptions<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object): ReturnType<UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;

另请参阅:参数 · 返回值

调用签名

TypeScript
1function queryOptions<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object): ReturnType<DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;

定义于:packages/solid-query/src/queryOptions.ts:94

你通常可以向 queryOptions 传入所有能传给 useQuery 的参数。这些选项可在各类 Hook 和命令式 API(例如 queryClient.query)之间共享。options.queryKey 是必需参数,用于指定生成选项所依据的查询键。

当 initialData 已知为已定义时,将选用此重载,因此所得 data 永远不会是 undefined(除非某个 select 将 TData 更改为包含 undefined)。

类型参数

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数

options

QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object

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

返回值

ReturnType<DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>

同一选项对象,其类型经推断后确保 queryKey 携带推导出的数据类型。

参阅

使用 useQuery 运行带有这些选项的查询。

示例

TypeScript
1import { For } from 'solid-js'2import { queryOptions, useQuery } from '@tanstack/solid-query'3 4const postsOptions = queryOptions({5  queryKey: ['posts'],6  queryFn: fetchPosts,7  initialData: [],8})9 10function Posts() {11  // `postsQuery.data` is `Post[]`, never `undefined`, thanks to `initialData` — even if a refetch fails,12  // so the list stays visible alongside the error.13  const postsQuery = useQuery(() => postsOptions)14 15  return (16    <div>17      {postsQuery.isError ? <span>Error: {postsQuery.error.message}</span> : null}18      <ul>19        <For each={postsQuery.data}>{(post) => <li>{post.title}</li>}</For>20      </ul>21    </div>22  )23}

调用签名

TypeScript
1function queryOptions<TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends readonly unknown[] = readonly unknown[]>(options: QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object): ReturnType<UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;

定义于:packages/solid-query/src/queryOptions.ts:142

你通常可以向 queryOptions 传入所有能传给 useQuery 的参数。这些选项可在各类 Hook 和命令式 API(例如 queryClient.query)之间共享。options.queryKey 是必需参数,用于指定生成选项所依据的查询键。

类型参数

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

参数

options

QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object

要使用的 UndefinedInitialDataOptions —— 即所有可传给 useQuery 的参数。

返回值

ReturnType<UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>

同一选项对象,其类型经推断后确保 queryKey 携带推导出的数据类型。

参阅

使用 useQuery 运行带有这些选项的查询。

示例

一个参数化工厂函数,使同一选项对象可按 id 复用:

TypeScript
1import { Match, Switch } from 'solid-js'2import { queryOptions, useQuery } from '@tanstack/solid-query'3 4const postOptions = (id: string) =>5  queryOptions({6    queryKey: ['post', id],7    queryFn: () => fetchPost(id),8  })9 10function Post(props: { id: string }) {11  const postQuery = useQuery(() => postOptions(props.id))12 13  return (14    <Switch>15      <Match when={postQuery.isPending}>Loading...</Match>16      <Match when={postQuery.isError}>Error: {postQuery.error.message}</Match>17      <Match when={postQuery.isSuccess}>18        <h1>{postQuery.data.title}</h1>19      </Match>20    </Switch>21  )22}

参数

options

QueryOptions<TQueryFnData, TError, TData, TQueryKey> & object

要使用的 UndefinedInitialDataOptions —— 即所有可传给 useQuery 的参数。

options 属性

由 QueryOptions 构建。参见上方类型定义以了解其具体变更内容。

返回值

ReturnType<UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>

同一选项对象,其类型经推断后确保 queryKey 携带推导出的数据类型。

返回值属性

由 QueryOptions、QueryKeyWithDataTag 构建。参见上方类型定义以了解其具体变更内容。

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

译自上游 59d11de