queryOptions
概述
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>;ReturnType<DefinedInitialDataOptions>→ReturnType<DefinedInitialDataOptions> & QueryKeyWithDataTag:你通常可以向queryOptions传入所有能传给useQuery的参数。这些选项可在各类 Hook 和命令式 API(例如queryClient.query)之间共享。options.queryKey是必需参数,用于指定生成选项所依据的查询键。ReturnType<UndefinedInitialDataOptions>→ReturnType<UndefinedInitialDataOptions> & QueryKeyWithDataTag:你通常可以向queryOptions传入所有能传给useQuery的参数。这些选项可在各类 Hook 和命令式 API(例如queryClient.query)之间共享。options.queryKey是必需参数,用于指定生成选项所依据的查询键。
调用签名
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 运行带有这些选项的查询。
示例
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}调用签名
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 复用:
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 构建。参见上方类型定义以了解其具体变更内容。