Defined in: packages/query-core/src/query.ts:225
Represents a single cached query. A Query holds the query's key, options, state (data/error/status), and the observers currently subscribed to it.
Instances are created and managed internally by QueryCache; application code typically interacts with queries indirectly through QueryClient or a framework hook like useQuery. Direct access to a Query instance is possible via queryCache.find()/findAll() for inspecting cache state.
const queryCache = queryClient.getQueryCache()
const query = queryCache.find({ queryKey: ['posts'] })
if (query) {
console.log(query.state.dataUpdatedAt)
}TQueryFnData = unknown
TError = DefaultError
TData = TQueryFnData
TQueryKey extends QueryKey = QueryKey
new Query<TQueryFnData, TError, TData, TQueryKey>(config): Query<TQueryFnData, TError, TData, TQueryKey>;Defined in: packages/query-core/src/query.ts:246
QueryConfig<TQueryFnData, TError, TData, TQueryKey>
Query<TQueryFnData, TError, TData, TQueryKey>
Removable.constructorgcTime: number;Defined in: packages/query-core/src/removable.ts:7
Removable.gcTimeobservers: QueryObserver<any, any, any, any, any>[];Defined in: packages/query-core/src/query.ts:242
options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;Defined in: packages/query-core/src/query.ts:233
queryHash: string;Defined in: packages/query-core/src/query.ts:232
queryKey: TQueryKey;Defined in: packages/query-core/src/query.ts:231
state: QueryState<TData, TError>;Defined in: packages/query-core/src/query.ts:234
get meta(): Record<string, unknown> | undefined;Defined in: packages/query-core/src/query.ts:264
The meta object passed in the query's options, if any.
Record<string, unknown> | undefined
get promise(): Promise<TData> | undefined;Defined in: packages/query-core/src/query.ts:277
The promise for the currently in-flight fetch, if the query is fetching. undefined when the query is not fetching.
Promise<TData> | undefined
cancel(options?): Promise<void>;Defined in: packages/query-core/src/query.ts:348
Cancels the query's currently in-flight fetch, if any.
Promise<void>
await query.cancel()protected clearGcTimeout(): void;Defined in: packages/query-core/src/removable.ts:32
void
Removable.clearGcTimeoutdestroy(): void;Defined in: packages/query-core/src/query.ts:361
Clears the query's garbage collection timeout and silently cancels any in-flight fetch. Called by QueryCache when the query is removed from the cache.
void
Removable.destroyfetch(options?, fetchOptions?): Promise<TData>;Defined in: packages/query-core/src/query.ts:590
Fetches the query, i.e. runs its queryFn (through any configured retryer/behavior) and updates the query's state with the result.
QueryOptions<TQueryFnData, TError, TData, TQueryKey, never>
FetchOptions<TQueryFnData>
Promise<TData>
getObserversCount(): number;Defined in: packages/query-core/src/query.ts:560
Returns the number of observers currently subscribed to this query.
number
if (query.getObserversCount() === 0) {
// no component is currently watching this query
}invalidate(): void;Defined in: packages/query-core/src/query.ts:574
Marks the query as invalidated, unless it is already invalidated. This updates state.isInvalidated and notifies observers, but does not by itself trigger a refetch.
void
query.invalidate()isActive(): boolean;Defined in: packages/query-core/src/query.ts:386
Returns true if the query has at least one observer for which enabled does not resolve to false.
boolean
isDisabled(): boolean;Defined in: packages/query-core/src/query.ts:400
Returns true if the query is disabled, meaning it will not fetch automatically.
boolean
isFetched(): boolean;Defined in: packages/query-core/src/query.ts:412
Returns true if the query has been fetched, i.e. it has resolved with either data or an error at least once.
boolean
isStale(): boolean;Defined in: packages/query-core/src/query.ts:447
Returns true if the query is stale.
boolean
if (query.isStale()) {
// refetch or otherwise treat the cached data as outdated
}isStaleByTime(staleTime): boolean;Defined in: packages/query-core/src/query.ts:473
Returns true if the query's data is stale relative to the given staleTime (defaults to 0).
StaleTime = 0
boolean
const isStale = query.isStaleByTime(1000 * 60)isStatic(): boolean;Defined in: packages/query-core/src/query.ts:420
Returns true if the query has at least one observer configured with staleTime: 'static', meaning it is treated as never stale.
boolean
protected optionalRemove(): void;Defined in: packages/query-core/src/query.ts:305
void
Removable.optionalRemovereset(): void;Defined in: packages/query-core/src/query.ts:377
Resets the query back to its initial state (the state it had when it was first created, e.g. any initialData), destroying it first to cancel any in-flight fetch.
void
protected scheduleGc(): void;Defined in: packages/query-core/src/removable.ts:14
void
Removable.scheduleGcsetState(state): void;Defined in: packages/query-core/src/query.ts:334
Merges the given partial state directly into this query's state, notifying observers. Used by persistence and broadcast plugins to restore a state snapshot, and by devtools to let a user manually trigger a loading/error state or edit the cached data.
Partial<QueryState<TData, TError>>
void
protected updateGcTime(newGcTime): void;Defined in: packages/query-core/src/removable.ts:24
number | undefined
void
Removable.updateGcTime