QueryResult
Defined in: react/src/types.ts:499
Result from createQuery
Includes useQuery hook that:
- Supports
enabledoption for conditional fetching - Data may be
undefinedduring loading - Uses regular
useQuerywith manual loading state handling
Extends
Section titled “Extends”BaseQueryResult<TQueryFnData,TSelected,TError>
Type Parameters
Section titled “Type Parameters”TQueryFnData
Section titled “TQueryFnData”TQueryFnData
The raw data type
TSelected
Section titled “TSelected”TSelected = TQueryFnData
The type after select transformation
TError
Section titled “TError”TError = Error
The error type
Properties
Section titled “Properties”cancel
Section titled “cancel”cancel: () =>
Promise<void>
Defined in: react/src/types.ts:343
Cancel this query’s fetch in flight, if there is one. The entry keeps the value it held before that fetch started, and a later refetch runs as usual.
Returns
Section titled “Returns”Promise<void>
Example
Section titled “Example”// Before writing to the cache, so an older answer cannot land on topawait postQuery.cancel()postQuery.setData(draft)Inherited from
Section titled “Inherited from”reset: () =>
Promise<void>
Defined in: react/src/types.ts:357
Reset this query’s entry to its initial state, as TanStack Query’s
resetQueries does: its data is cleared, or goes back to initialData
when one was given. A mounted hook then fetches it again, and a suspense
hook suspends until it has. It resolves once that fetch settles.
Returns
Section titled “Returns”Promise<void>
Example
Section titled “Example”// A reload button that shows the Suspense fallback again<button onClick={() => void statsQuery.reset()}>Reload</button>Inherited from
Section titled “Inherited from”optimisticUpdate
Section titled “optimisticUpdate”optimisticUpdate: (
updater) =>Promise<OptimisticRollback>
Defined in: react/src/types.ts:398
Replace this query’s cached value for the duration of a mutation, and get back a rollback for when it fails.
It cancels the query’s fetch in flight, so an answer from before the
mutation cannot overwrite the new value, then writes what updater
returns for the cached value. updater gets and returns the raw,
pre-select data. When nothing is cached yet it is not called, nothing
is cancelled or written, and rollback() does nothing: there is no
value on screen to update, and the query’s own fetch will bring one. The
same goes when another principal signs in or out while it cancels, since
the cached value is then the previous principal’s.
The fetch it cancels may be a refetch an invalidation or a sign-in
started, so refetch the query once the mutation settles, with
invalidate() in onSettled or the query in invalidateQueries.
Return it from onMutate, so the rollback reaches onError.
Parameters
Section titled “Parameters”updater
Section titled “updater”(old) => TQueryFnData
The new value, from the cached one. Do not mutate the cached value in place; return a new one.
Returns
Section titled “Returns”Promise<OptimisticRollback>
Example
Section titled “Example”const getPost = createQueryFactory(backend, { functionName: "getPost" })const likePost = createMutation(backend, { functionName: "likePost" })
const { mutate } = likePost.useMutation({ onMutate: ([postId]) => getPost([postId]).optimisticUpdate((post) => ({ ...post, likes: post.likes + 1n, })), onError: (_error, _args, update) => update?.rollback(), // Refetch either way: a call that failed in transit may still have run onSettled: (_data, _error, [postId]) => getPost([postId]).invalidate(),})Inherited from
Section titled “Inherited from”BaseQueryResult.optimisticUpdate
fetch: () =>
Promise<TSelected>
Defined in: react/src/types.ts:420
Fetch data in loader (uses ensureQueryData for cache-first)
Returns
Section titled “Returns”Promise<TSelected>
Inherited from
Section titled “Inherited from”prefetch
Section titled “prefetch”prefetch: () =>
Promise<void>
Defined in: react/src/types.ts:438
Eagerly prefetch data into the cache without blocking. Useful for preloading data before navigating to a route.
Unlike fetch(), this returns a void promise so it can be fire-and-forget.
It never rejects: after a failed fetch the cached data is left as it was.
A sign-in or sign-out while it is in flight cancels the fetch, so the
previous principal’s answer is never cached, and it runs again for the
principal signed in, as fetch() does. When that run succeeds, the cache
holds that principal’s answer by the time the promise resolves.
Returns
Section titled “Returns”Promise<void>
Example
Section titled “Example”// In a route hover handlerbutton.addEventListener("mouseenter", () => userQuery.prefetch())Inherited from
Section titled “Inherited from”invalidate
Section titled “invalidate”invalidate: () =>
Promise<void>
Defined in: react/src/types.ts:441
Invalidate the cache (refetches if query is active)
Returns
Section titled “Returns”Promise<void>
Inherited from
Section titled “Inherited from”getQueryKey
Section titled “getQueryKey”getQueryKey: () => readonly
unknown[]
Defined in: react/src/types.ts:444
Get query key (for advanced React Query usage)
Returns
Section titled “Returns”readonly unknown[]
Inherited from
Section titled “Inherited from”getCacheData
Section titled “getCacheData”getCacheData: {():
TSelected|undefined; <TFinal>(select):TFinal|undefined; }
Defined in: react/src/types.ts:461
Read data directly from cache without fetching. Returns undefined if data is not in cache.
Call Signature
Section titled “Call Signature”():
TSelected|undefined
Returns
Section titled “Returns”TSelected | undefined
Call Signature
Section titled “Call Signature”<
TFinal>(select):TFinal|undefined
Type Parameters
Section titled “Type Parameters”TFinal
Section titled “TFinal”TFinal
Parameters
Section titled “Parameters”select
Section titled “select”(data) => TFinal
Returns
Section titled “Returns”TFinal | undefined
Template
Section titled “Template”TFinal
Type returned after optional select transformation
select
Optional select function to transform cached data further
Returns
Section titled “Returns”Cached data with select applied, or undefined if not in cache
Example
Section titled “Example”// Just get the cached dataconst user = userQuery.getCacheData()
// With additional select transformationconst name = userQuery.getCacheData((user) => user.name)Inherited from
Section titled “Inherited from”setData
Section titled “setData”setData: (
updater) =>TQueryFnData|undefined
Defined in: react/src/types.ts:480
Write raw data directly into the cache (useful for optimistic updates). Accepts a new value or an updater function that receives the current cached raw data.
Note: The value is stored as raw (pre-select) data. Any active select
transformations are automatically re-applied by React Query on the next render.
Parameters
Section titled “Parameters”updater
Section titled “updater”TQueryFnData | ((old) => TQueryFnData | undefined)
Returns
Section titled “Returns”TQueryFnData | undefined
Example
Section titled “Example”// Optimistic update before a mutationuserQuery.setData({ id: "1", name: "Alice" })
// Functional updatecounterQuery.setData((prev) => (prev ?? 0) + 1)Inherited from
Section titled “Inherited from”useQuery
Section titled “useQuery”useQuery:
UseQueryWithSelect<TQueryFnData,TSelected,TError>
Defined in: react/src/types.ts:505
React hook for components - supports chained select and enabled option