snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
id: Angular-HttpClient-and-other-data-fetching-clients
|
||||
title: Angular HttpClient and other data fetching clients
|
||||
---
|
||||
|
||||
Because TanStack Query's fetching mechanisms are agnostically built on Promises, you can use literally any asynchronous data fetching client, including the browser native `fetch` API, `graphql-request`, and more.
|
||||
|
||||
## Using Angular's `HttpClient` for data fetching
|
||||
|
||||
`HttpClient` is a powerful and integrated part of Angular, which gives the following benefits:
|
||||
|
||||
- Mock responses in unit tests using [provideHttpClientTesting](https://angular.dev/guide/http/testing).
|
||||
- [Interceptors](https://angular.dev/guide/http/interceptors) can be used for a wide range of functionality including adding authentication headers, performing logging, etc. While some data fetching libraries have their own interceptor system, `HttpClient` interceptors are integrated with Angular's dependency injection system.
|
||||
- `HttpClient` automatically informs [`PendingTasks`](https://angular.dev/api/core/PendingTasks#), which enables Angular to be aware of pending requests. Unit tests and SSR can use the resulting application _stableness_ information to wait for pending requests to finish. This makes unit testing much easier for [Zoneless](https://angular.dev/guide/zoneless) applications.
|
||||
- When using SSR, `HttpClient` will [cache requests](https://angular.dev/guide/ssr#caching-data-when-using-HttpClient) performed on the server. This will prevent unneeded requests on the client. `HttpClient` SSR caching works out of the box. TanStack Query has its own hydration functionality which may be more powerful but requires some setup. Which one fits your needs best depends on your use case.
|
||||
|
||||
### Using observables in `queryFn`
|
||||
|
||||
As TanStack Query is a promise based library, observables from `HttpClient` need to be converted to promises. This can be done with the `lastValueFrom` or `firstValueFrom` functions from `rxjs`.
|
||||
|
||||
```ts
|
||||
@Component({
|
||||
// ...
|
||||
})
|
||||
class ExampleComponent {
|
||||
private readonly http = inject(HttpClient)
|
||||
|
||||
readonly repoDataQuery = injectQuery(() => ({
|
||||
queryKey: ['repoData'],
|
||||
queryFn: () =>
|
||||
lastValueFrom(
|
||||
this.http.get('https://api.github.com/repos/tanstack/query'),
|
||||
),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
> Since Angular is moving towards RxJS as an optional dependency, it's expected that `HttpClient` will also support promises in the future.
|
||||
>
|
||||
> Support for observables in TanStack Query for Angular is planned.
|
||||
|
||||
## Comparison table
|
||||
|
||||
| Data fetching client | Pros | Cons |
|
||||
| --------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| **Angular HttpClient** | Featureful and very well integrated with Angular. | Observables need to be converted to Promises. |
|
||||
| **Fetch** | Browser native API, so adds nothing to bundle size. | Barebones API which lacks many features. |
|
||||
| **Specialized libraries such as `graphql-request`** | Specialized features for specific use cases. | If it's not an Angular library it won't integrate well with the framework. |
|
||||
167
docs/framework/angular/devtools.md
Normal file
167
docs/framework/angular/devtools.md
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
id: devtools
|
||||
title: Devtools
|
||||
---
|
||||
|
||||
> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages:
|
||||
>
|
||||
> - <img alt="Chrome logo" src="https://www.google.com/chrome/static/images/chrome-logo.svg" width="16" height="16" class="inline mr-1 not-prose" /> <a href="https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai">Devtools for Chrome</a>
|
||||
> - <img alt="Firefox logo" src="https://upload.wikimedia.org/wikipedia/commons/a/a0/Firefox_logo%2C_2019.svg" width="16" height="16" class="inline mr-1 not-prose" /> <a href="https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/">Devtools for Firefox</a>
|
||||
> - <img alt="Edge logo" src="https://upload.wikimedia.org/wikipedia/commons/9/98/Microsoft_Edge_logo_%282019%29.svg" width="16" height="16" class="inline mr-1 not-prose" /> <a href="https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj">Devtools for Edge</a>
|
||||
|
||||
## Enable devtools
|
||||
|
||||
The devtools help you debug and inspect your queries and mutations. You can enable the devtools by adding `withDevtools` to `provideTanStackQuery`.
|
||||
|
||||
By default, Angular Query Devtools are only included in development mode bundles, so you don't need to worry about excluding them during a production build.
|
||||
|
||||
```ts
|
||||
import {
|
||||
QueryClient,
|
||||
provideTanStackQuery,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
import { withDevtools } from '@tanstack/angular-query-experimental/devtools'
|
||||
|
||||
export const appConfig: ApplicationConfig = {
|
||||
providers: [provideTanStackQuery(new QueryClient(), withDevtools())],
|
||||
}
|
||||
```
|
||||
|
||||
## Devtools in production
|
||||
|
||||
Devtools are automatically excluded from production builds. However, it might be desirable to lazy load the devtools in production.
|
||||
|
||||
To use `withDevtools` in production builds, import using the `production` sub-path. The function exported from the production subpath is identical to the main one, but won't be excluded from production builds.
|
||||
|
||||
```ts
|
||||
import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production'
|
||||
```
|
||||
|
||||
To control when devtools are loaded, you can use the `loadDevtools` option.
|
||||
|
||||
When not setting the option or setting it to 'auto', the devtools will be loaded automatically only when Angular runs in development mode.
|
||||
|
||||
```ts
|
||||
import { withDevtools } from '@tanstack/angular-query-experimental/devtools'
|
||||
|
||||
provideTanStackQuery(new QueryClient(), withDevtools())
|
||||
|
||||
// which is equivalent to
|
||||
provideTanStackQuery(
|
||||
new QueryClient(),
|
||||
withDevtools(() => ({ loadDevtools: 'auto' })),
|
||||
)
|
||||
```
|
||||
|
||||
When setting the option to true, the devtools will be loaded in both development and production mode.
|
||||
|
||||
This is useful if you want to load devtools based on [Angular environment configurations](https://angular.dev/tools/cli/environments). E.g. you could set this to true when the application is running on your production build staging environment.
|
||||
|
||||
```ts
|
||||
import { environment } from './environments/environment'
|
||||
// Make sure to use the production sub-path to load devtools in production builds
|
||||
import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production'
|
||||
|
||||
provideTanStackQuery(
|
||||
new QueryClient(),
|
||||
withDevtools(() => ({ loadDevtools: environment.loadDevtools })),
|
||||
)
|
||||
```
|
||||
|
||||
When setting the option to false, the devtools will not be loaded.
|
||||
|
||||
```ts
|
||||
provideTanStackQuery(
|
||||
new QueryClient(),
|
||||
withDevtools(() => ({ loadDevtools: false })),
|
||||
)
|
||||
```
|
||||
|
||||
## Derive options through reactivity
|
||||
|
||||
Options are passed to `withDevtools` from a callback function to support reactivity through signals. In the following example
|
||||
a signal is created from a RxJS observable that emits on a keyboard shortcut. When the derived signal is set to true, the devtools are lazily loaded.
|
||||
|
||||
The example below always loads devtools in development mode and loads on-demand in production mode when a keyboard shortcut is pressed.
|
||||
|
||||
```ts
|
||||
import { Injectable, isDevMode } from '@angular/core'
|
||||
import { fromEvent, map, scan } from 'rxjs'
|
||||
import { toSignal } from '@angular/core/rxjs-interop'
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class DevtoolsOptionsManager {
|
||||
loadDevtools = toSignal(
|
||||
fromEvent<KeyboardEvent>(document, 'keydown').pipe(
|
||||
map(
|
||||
(event): boolean =>
|
||||
event.metaKey && event.ctrlKey && event.shiftKey && event.key === 'D',
|
||||
),
|
||||
scan((acc, curr) => acc || curr, isDevMode()),
|
||||
),
|
||||
{
|
||||
initialValue: isDevMode(),
|
||||
},
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
If you want to use an injectable such as a service in the callback you can use `deps`. The injected value will be passed as parameter to the callback function.
|
||||
|
||||
This is similar to `deps` in Angular's [`useFactory`](https://angular.dev/guide/di/dependency-injection-providers#factory-providers-usefactory) provider.
|
||||
|
||||
```ts
|
||||
// ...
|
||||
// 👇 Note we import from the production sub-path to enable devtools lazy loading in production builds
|
||||
import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production'
|
||||
|
||||
export const appConfig: ApplicationConfig = {
|
||||
providers: [
|
||||
provideHttpClient(),
|
||||
provideTanStackQuery(
|
||||
new QueryClient(),
|
||||
withDevtools(
|
||||
(devToolsOptionsManager: DevtoolsOptionsManager) => ({
|
||||
loadDevtools: devToolsOptionsManager.loadDevtools(),
|
||||
}),
|
||||
{
|
||||
// `deps` is used to inject and pass `DevtoolsOptionsManager` to the `withDevtools` callback.
|
||||
deps: [DevtoolsOptionsManager],
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
### Options returned from the callback
|
||||
|
||||
Of these options `loadDevtools`, `client`, `position`, `errorTypes`, `buttonPosition`, `initialIsOpen`, and `theme` support reactivity through signals.
|
||||
|
||||
- `loadDevtools?: 'auto' | boolean`
|
||||
- Defaults to `auto`: lazily loads devtools when in development mode. Skips loading in production mode.
|
||||
- Use this to control if the devtools are loaded.
|
||||
- `initialIsOpen?: Boolean`
|
||||
- Set this to `true` if you want the tools to default to being open
|
||||
- `buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"`
|
||||
- Defaults to `bottom-right`
|
||||
- The position of the TanStack logo to open and close the devtools panel
|
||||
- If `relative`, the button is placed in the location that you render the devtools.
|
||||
- `position?: "top" | "bottom" | "left" | "right"`
|
||||
- Defaults to `bottom`
|
||||
- The position of the Angular Query devtools panel
|
||||
- `client?: QueryClient`,
|
||||
- Use this to use a custom QueryClient. Otherwise, the QueryClient provided through `provideTanStackQuery` will be injected.
|
||||
- `errorTypes?: { name: string; initializer: (query: Query) => TError}[]`
|
||||
- Use this to predefine some errors that can be triggered on your queries. Initializer will be called (with the specific query) when that error is toggled on from the UI. It must return an Error.
|
||||
- `styleNonce?: string`
|
||||
- Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles.
|
||||
- `shadowDOMTarget?: ShadowRoot`
|
||||
- Default behavior will apply the devtool's styles to the head tag within the DOM.
|
||||
- Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM.
|
||||
- `hideDisabledQueries?: boolean`
|
||||
- Set this to true to hide disabled queries from the devtools panel.
|
||||
- `theme?: "light" | "dark" | "system"`
|
||||
- Defaults to `system`.
|
||||
- Set this to change the theme of the devtools panel.
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
id: background-fetching-indicators
|
||||
title: Background Fetching Indicators
|
||||
ref: docs/framework/react/guides/background-fetching-indicators.md
|
||||
replace:
|
||||
{
|
||||
'useIsFetching': 'injectIsFetching',
|
||||
'hook': 'function',
|
||||
'@tanstack/react-query': '@tanstack/angular-query-experimental',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
@if (todosQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (todosQuery.isError()) {
|
||||
An error has occurred: {{ todosQuery.error().message }}
|
||||
} @else if (todosQuery.isSuccess()) {
|
||||
@if (todosQuery.isFetching()) {
|
||||
Refreshing...
|
||||
}
|
||||
@for (todos of todosQuery.data(); track todo.id) {
|
||||
<todo [todo]="todo" />
|
||||
}
|
||||
}
|
||||
`,
|
||||
})
|
||||
class TodosComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodos,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```angular-ts
|
||||
import { injectIsFetching } from '@tanstack/angular-query-experimental'
|
||||
|
||||
@Component({
|
||||
selector: 'global-loading-indicator',
|
||||
template: `
|
||||
@if (isFetching()) {
|
||||
<div>Queries are fetching in the background...</div>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class GlobalLoadingIndicatorComponent {
|
||||
readonly isFetching = injectIsFetching()
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
35
docs/framework/angular/guides/caching.md
Normal file
35
docs/framework/angular/guides/caching.md
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: caching
|
||||
title: Caching Examples
|
||||
---
|
||||
|
||||
> Please thoroughly read the [Important Defaults](./important-defaults.md) before reading this guide
|
||||
|
||||
## Basic Example
|
||||
|
||||
This caching example illustrates the story and lifecycle of:
|
||||
|
||||
- Query Instances with and without cache data
|
||||
- Background Refetching
|
||||
- Inactive Queries
|
||||
- Garbage Collection
|
||||
|
||||
Let's assume we are using the default `gcTime` of **5 minutes** and the default `staleTime` of `0`.
|
||||
|
||||
- A new instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` initializes.
|
||||
- Since no other queries have been made with the `['todos']` query key, this query will show a hard loading state and make a network request to fetch the data.
|
||||
- When the network request has completed, the returned data will be cached under the `['todos']` key.
|
||||
- The data will be marked as stale after the configured `staleTime` (defaults to `0`, or immediately).
|
||||
- A second instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` initializes elsewhere.
|
||||
- Since the cache already has data for the `['todos']` key from the first query, that data is immediately returned from the cache.
|
||||
- The new instance triggers a new network request using its query function.
|
||||
- Note that regardless of whether both `fetchTodos` query functions are identical or not, both queries' [`status`](../reference/functions/injectQuery.md) are updated (including `isFetching`, `isPending`, and other related values) because they have the same query key.
|
||||
- When the request completes successfully, the cache's data under the `['todos']` key is updated with the new data, and both instances are updated with the new data.
|
||||
- Both instances of the `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` query are destroyed and no longer in use.
|
||||
- Since there are no more active instances of this query, a garbage collection timeout is set using `gcTime` to delete and garbage collect the query (defaults to **5 minutes**).
|
||||
- Before the cache timeout has completed, another instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` mounts. The query immediately returns the available cached data while the `fetchTodos` function is being run in the background. When it completes successfully, it will populate the cache with fresh data.
|
||||
- The final instance of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` gets destroyed.
|
||||
- No more instances of `injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodos }))` appear within **5 minutes**.
|
||||
- The cached data under the `['todos']` key is deleted and garbage collected.
|
||||
|
||||
For more advanced use-cases, see [injectQuery](../reference/functions/injectQuery.md).
|
||||
49
docs/framework/angular/guides/default-query-function.md
Normal file
49
docs/framework/angular/guides/default-query-function.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
id: default-query-function
|
||||
title: Default Query Function
|
||||
ref: docs/framework/react/guides/default-query-function.md
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
// Define a default query function that will receive the query key
|
||||
const defaultQueryFn: QueryFunction = async ({ queryKey }) => {
|
||||
const { data } = await axios.get(
|
||||
`https://jsonplaceholder.typicode.com${queryKey[0]}`,
|
||||
)
|
||||
return data
|
||||
}
|
||||
|
||||
// provide the default query function to your app with defaultOptions
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
queryFn: defaultQueryFn,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
bootstrapApplication(MyAppComponent, {
|
||||
providers: [provideTanStackQuery(queryClient)],
|
||||
})
|
||||
|
||||
export class PostsComponent {
|
||||
// All you have to do now is pass a key!
|
||||
readonly postsQuery = injectQuery<Array<Post>>(() => ({
|
||||
queryKey: ['/posts'],
|
||||
}))
|
||||
// ...
|
||||
}
|
||||
|
||||
export class PostComponent {
|
||||
// You can even leave out the queryFn and just go straight into options
|
||||
readonly postQuery = injectQuery<Post>(() => ({
|
||||
enabled: this.postIdSignal() > 0,
|
||||
queryKey: [`/posts/${this.postIdSignal()}`],
|
||||
}))
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
33
docs/framework/angular/guides/dependent-queries.md
Normal file
33
docs/framework/angular/guides/dependent-queries.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
id: dependent-queries
|
||||
title: Dependent Queries
|
||||
ref: docs/framework/react/guides/dependent-queries.md
|
||||
replace: { 'useQuery': 'injectQuery', 'useQueries': 'injectQueries' }
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
// Get the user
|
||||
userQuery = injectQuery(() => ({
|
||||
queryKey: ['user', email],
|
||||
queryFn: getUserByEmail,
|
||||
}))
|
||||
|
||||
// Then get the user's projects
|
||||
projectsQuery = injectQuery(() => ({
|
||||
queryKey: ['projects', this.userQuery.data()?.id],
|
||||
queryFn: getProjectsByUser,
|
||||
// The query will not execute until the user id exists
|
||||
enabled: !!this.userQuery.data()?.id,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
// injectQueries is under development for Angular Query
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
95
docs/framework/angular/guides/disabling-queries.md
Normal file
95
docs/framework/angular/guides/disabling-queries.md
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
id: disabling-queries
|
||||
title: Disabling/Pausing Queries
|
||||
ref: docs/framework/react/guides/disabling-queries.md
|
||||
replace: { 'useQuery': 'injectQuery' }
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `<div>
|
||||
<button (click)="todosQuery.refetch()">Fetch Todos</button>
|
||||
|
||||
@if (todosQuery.data()) {
|
||||
<ul>
|
||||
@for (todo of todosQuery.data(); track todo.id) {
|
||||
<li>{{ todo.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
} @else {
|
||||
@if (todosQuery.isError()) {
|
||||
<span>Error: {{ todosQuery.error().message }}</span>
|
||||
} @else if (todosQuery.isLoading()) {
|
||||
<span>Loading...</span>
|
||||
} @else if (!todosQuery.isLoading() && !todosQuery.isError()) {
|
||||
<span>Not ready ...</span>
|
||||
}
|
||||
}
|
||||
|
||||
<div>{{ todosQuery.isLoading() ? 'Fetching...' : '' }}</div>
|
||||
</div>`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
enabled: false,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
<div>
|
||||
// 🚀 applying the filter will enable and execute the query
|
||||
<filters-form onApply="filter.set" />
|
||||
<todos-table data="todosQuery.data()" />
|
||||
</div>
|
||||
`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
filter = signal('')
|
||||
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', this.filter()],
|
||||
queryFn: () => fetchTodos(this.filter()),
|
||||
enabled: !!this.filter(),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```angular-ts
|
||||
import { skipToken, injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
<div>
|
||||
// 🚀 applying the filter will enable and execute the query
|
||||
<filters-form onApply="filter.set" />
|
||||
<todos-table data="todosQuery.data()" />
|
||||
</div>
|
||||
`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
filter = signal('')
|
||||
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', this.filter()],
|
||||
queryFn: this.filter() ? () => fetchTodos(this.filter()) : skipToken,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
id: does-this-replace-client-state
|
||||
title: Does TanStack Query replace global state managers?
|
||||
ref: docs/framework/react/guides/does-this-replace-client-state.md
|
||||
replace:
|
||||
{
|
||||
'useQuery': 'injectQuery',
|
||||
'useMutation': 'injectMutation',
|
||||
'hook': 'function',
|
||||
}
|
||||
---
|
||||
5
docs/framework/angular/guides/filters.md
Normal file
5
docs/framework/angular/guides/filters.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
id: filters
|
||||
title: Filters
|
||||
ref: docs/framework/react/guides/filters.md
|
||||
---
|
||||
16
docs/framework/angular/guides/important-defaults.md
Normal file
16
docs/framework/angular/guides/important-defaults.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
id: important-defaults
|
||||
title: Important Defaults
|
||||
ref: docs/framework/react/guides/important-defaults.md
|
||||
replace:
|
||||
{
|
||||
'React': 'Angular',
|
||||
'react-query': 'angular-query',
|
||||
'useQuery': 'injectQuery',
|
||||
'useInfiniteQuery': 'injectInfiniteQuery',
|
||||
'useMemo and useCallback': 'setting signal values',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
161
docs/framework/angular/guides/infinite-queries.md
Normal file
161
docs/framework/angular/guides/infinite-queries.md
Normal file
@@ -0,0 +1,161 @@
|
||||
---
|
||||
id: infinite-queries
|
||||
title: Infinite Queries
|
||||
ref: docs/framework/react/guides/infinite-queries.md
|
||||
replace:
|
||||
{ 'useQuery': 'injectQuery', 'useInfiniteQuery': 'injectInfiniteQuery' }
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```angular-ts
|
||||
import { Component, computed, inject } from '@angular/core'
|
||||
import { injectInfiniteQuery } from '@tanstack/angular-query-experimental'
|
||||
import { lastValueFrom } from 'rxjs'
|
||||
import { ProjectsService } from './projects-service'
|
||||
|
||||
@Component({
|
||||
selector: 'example',
|
||||
templateUrl: './example.component.html',
|
||||
})
|
||||
export class Example {
|
||||
readonly projectsService = inject(ProjectsService)
|
||||
|
||||
readonly projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: async ({ pageParam }) => {
|
||||
return lastValueFrom(this.projectsService.getProjects(pageParam))
|
||||
},
|
||||
initialPageParam: 0,
|
||||
getPreviousPageParam: (firstPage) => firstPage.previousId ?? undefined,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId ?? undefined,
|
||||
maxPages: 3,
|
||||
}))
|
||||
|
||||
nextButtonDisabled = computed(
|
||||
() => !this.#hasNextPage() || this.#isFetchingNextPage(),
|
||||
)
|
||||
nextButtonText = computed(() =>
|
||||
this.#isFetchingNextPage()
|
||||
? 'Loading more...'
|
||||
: this.#hasNextPage()
|
||||
? 'Load newer'
|
||||
: 'Nothing more to load',
|
||||
)
|
||||
|
||||
#hasNextPage = this.projectsQuery.hasNextPage
|
||||
#isFetchingNextPage = this.projectsQuery.isFetchingNextPage
|
||||
}
|
||||
```
|
||||
|
||||
```angular-html
|
||||
<div>
|
||||
@if (projectsQuery.isPending()) {
|
||||
<p>Loading...</p>
|
||||
} @else if (projectsQuery.isError()) {
|
||||
<span>Error: {{ projectsQuery?.error().message }}</span>
|
||||
} @else {
|
||||
@for (page of projectsQuery?.data().pages; track $index) {
|
||||
@for (project of page.data; track project.id) {
|
||||
<p>{{ project.name }} {{ project.id }}</p>
|
||||
}
|
||||
}
|
||||
<div>
|
||||
<button
|
||||
(click)="projectsQuery.fetchNextPage()"
|
||||
[disabled]="nextButtonDisabled()"
|
||||
>
|
||||
{{ nextButtonText() }}
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example1'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
template: ` <list-component (endReached)="fetchNextPage()" /> `,
|
||||
})
|
||||
export class Example {
|
||||
readonly projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: async ({ pageParam }) => {
|
||||
return lastValueFrom(this.projectsService.getProjects(pageParam))
|
||||
},
|
||||
}))
|
||||
|
||||
fetchNextPage() {
|
||||
// Do nothing if already fetching
|
||||
if (this.projectsQuery.isFetching()) return
|
||||
this.projectsQuery.fetchNextPage()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example1'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: fetchProjects,
|
||||
getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
|
||||
getPreviousPageParam: (firstPage, pages) => firstPage.prevCursor,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: fetchProjects,
|
||||
select: (data) => ({
|
||||
pages: [...data.pages].reverse(),
|
||||
pageParams: [...data.pageParams].reverse(),
|
||||
}),
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
[//]: # 'Example8'
|
||||
|
||||
```ts
|
||||
injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: fetchProjects,
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage, pages) => lastPage.nextCursor,
|
||||
getPreviousPageParam: (firstPage, pages) => firstPage.prevCursor,
|
||||
maxPages: 3,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example8'
|
||||
[//]: # 'Example9'
|
||||
|
||||
```ts
|
||||
injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: fetchProjects,
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage, allPages, lastPageParam) => {
|
||||
if (lastPage.length === 0) {
|
||||
return undefined
|
||||
}
|
||||
return lastPageParam + 1
|
||||
},
|
||||
getPreviousPageParam: (firstPage, allPages, firstPageParam) => {
|
||||
if (firstPageParam <= 1) {
|
||||
return undefined
|
||||
}
|
||||
return firstPageParam - 1
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example9'
|
||||
132
docs/framework/angular/guides/initial-query-data.md
Normal file
132
docs/framework/angular/guides/initial-query-data.md
Normal file
@@ -0,0 +1,132 @@
|
||||
---
|
||||
id: initial-query-data
|
||||
title: Initial Query Data
|
||||
ref: docs/framework/react/guides/initial-query-data.md
|
||||
replace:
|
||||
{
|
||||
'render': 'service or component instance',
|
||||
' when it mounts': '',
|
||||
'after mount': 'after initialization',
|
||||
'on mount': 'on initialization',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: initialTodos,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
// Will show initialTodos immediately, but also immediately refetch todos
|
||||
// when an instance of the component or service is created
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: initialTodos,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
// Show initialTodos immediately, but won't refetch until
|
||||
// another interaction event is encountered after 1000 ms
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: initialTodos,
|
||||
staleTime: 1000,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
// Show initialTodos immediately, but won't refetch until
|
||||
// another interaction event is encountered after 1000 ms
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: initialTodos,
|
||||
staleTime: 60 * 1000, // 1 minute
|
||||
// This could be 10 seconds ago or 10 minutes ago
|
||||
initialDataUpdatedAt: initialTodosUpdatedTimestamp, // eg. 1608412420052
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
[//]: # 'Example5'
|
||||
|
||||
```ts
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: () => getExpensiveTodos(),
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example5'
|
||||
[//]: # 'Example6'
|
||||
|
||||
```ts
|
||||
todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todo', this.todoId()],
|
||||
queryFn: () => fetch('/todos'),
|
||||
initialData: () => {
|
||||
// Use a todo from the 'todos' query as the initial data for this todo query
|
||||
return this.queryClient
|
||||
.getQueryData(['todos'])
|
||||
?.find((d) => d.id === this.todoId())
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example6'
|
||||
[//]: # 'Example7'
|
||||
|
||||
```ts
|
||||
todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', this.todoId()],
|
||||
queryFn: () => fetch(`/todos/${this.todoId()}`),
|
||||
initialData: () =>
|
||||
queryClient.getQueryData(['todos'])?.find((d) => d.id === this.todoId()),
|
||||
initialDataUpdatedAt: () =>
|
||||
queryClient.getQueryState(['todos'])?.dataUpdatedAt,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example7'
|
||||
[//]: # 'Example8'
|
||||
|
||||
```ts
|
||||
todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todo', this.todoId()],
|
||||
queryFn: () => fetch(`/todos/${this.todoId()}`),
|
||||
initialData: () => {
|
||||
// Get the query state
|
||||
const state = queryClient.getQueryState(['todos'])
|
||||
|
||||
// If the query exists and has data that is no older than 10 seconds...
|
||||
if (state && Date.now() - state.dataUpdatedAt <= 10 * 1000) {
|
||||
// return the individual todo
|
||||
return state.data.find((d) => d.id === this.todoId())
|
||||
}
|
||||
|
||||
// Otherwise, return undefined and let it fetch from a hard loading state!
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example8'
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: invalidations-from-mutations
|
||||
title: Invalidations from Mutations
|
||||
ref: docs/framework/react/guides/invalidations-from-mutations.md
|
||||
replace: { 'useMutation': 'injectMutation', 'hook': 'function' }
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
postTodoMutation = injectMutation(() => ({
|
||||
mutationFn: postTodo,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
import {
|
||||
injectMutation,
|
||||
QueryClient,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
export class TodosComponent {
|
||||
readonly queryClient = inject(QueryClient)
|
||||
|
||||
// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key
|
||||
readonly addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: () => {
|
||||
this.queryClient.invalidateQueries({ queryKey: ['todos'] })
|
||||
this.queryClient.invalidateQueries({ queryKey: ['reminders'] })
|
||||
},
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
You can wire up your invalidations to happen using any of the callbacks available in the [`injectMutation` function](./mutations.md)
|
||||
27
docs/framework/angular/guides/mutation-options.md
Normal file
27
docs/framework/angular/guides/mutation-options.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
id: query-options
|
||||
title: Mutation Options
|
||||
---
|
||||
|
||||
One of the best ways to share mutation options between multiple places,
|
||||
is to use the `mutationOptions` helper. At runtime, this helper just returns whatever you pass into it,
|
||||
but it has a lot of advantages when using it [with TypeScript](../typescript.md#typing-query-options).
|
||||
You can define all possible options for a mutation in one place,
|
||||
and you'll also get type inference and type safety for all of them.
|
||||
|
||||
```ts
|
||||
export class QueriesService {
|
||||
private readonly http = inject(HttpClient)
|
||||
|
||||
updatePost(id: number) {
|
||||
return mutationOptions({
|
||||
mutationFn: (post: Post) => Promise.resolve(post),
|
||||
mutationKey: ['updatePost', id],
|
||||
onSuccess: (newPost) => {
|
||||
// ^? newPost: Post
|
||||
this.queryClient.setQueryData(['posts', id], newPost)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
274
docs/framework/angular/guides/mutations.md
Normal file
274
docs/framework/angular/guides/mutations.md
Normal file
@@ -0,0 +1,274 @@
|
||||
---
|
||||
id: mutations
|
||||
title: Mutations
|
||||
ref: docs/framework/react/guides/mutations.md
|
||||
replace:
|
||||
{
|
||||
'useMutation': 'injectMutation',
|
||||
'hook': 'function',
|
||||
'still mounted': 'still active',
|
||||
'unmounts': 'gets destroyed',
|
||||
'mounted': 'initialized',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
template: `
|
||||
<div>
|
||||
@if (createTodoMutation.isPending()) {
|
||||
<span>Adding todo...</span>
|
||||
} @else if (createTodoMutation.isError()) {
|
||||
<div>An error occurred: {{ createTodoMutation.error()?.message }}</div>
|
||||
} @else if (createTodoMutation.isSuccess()) {
|
||||
<div>Todo added!</div>
|
||||
}
|
||||
<button (click)="createTodoMutation.mutate(1)">Create Todo</button>
|
||||
</div>
|
||||
`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
readonly todoService = inject(TodoService)
|
||||
readonly createTodoMutation = injectMutation(() => ({
|
||||
mutationFn: (todoId: number) =>
|
||||
lastValueFrom(this.todoService.create(todoId)),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Info1'
|
||||
[//]: # 'Info1'
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todo-item',
|
||||
imports: [ReactiveFormsModule],
|
||||
template: `
|
||||
<form [formGroup]="todoForm" (ngSubmit)="onCreateTodo()">
|
||||
@if (createTodoMutation.error()) {
|
||||
<h5 (click)="createTodoMutation.reset()">
|
||||
{{ createTodoMutation.error() }}
|
||||
</h5>
|
||||
}
|
||||
<input type="text" formControlName="title" />
|
||||
<br />
|
||||
<button type="submit">Create Todo</button>
|
||||
</form>
|
||||
`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
readonly createTodoMutation = injectMutation(() => ({
|
||||
mutationFn: createTodo,
|
||||
}))
|
||||
|
||||
readonly fb = inject(NonNullableFormBuilder)
|
||||
|
||||
todoForm = this.fb.group({
|
||||
title: this.fb.control('', {
|
||||
validators: [Validators.required],
|
||||
}),
|
||||
})
|
||||
|
||||
title = toSignal(this.todoForm.controls.title.valueChanges, {
|
||||
initialValue: '',
|
||||
})
|
||||
|
||||
onCreateTodo = () => {
|
||||
this.createTodoMutation.mutate(this.title())
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onMutate: (variables, context) => {
|
||||
// A mutation is about to happen!
|
||||
|
||||
// Optionally return a result containing data to use when for example rolling back
|
||||
return { id: 1 }
|
||||
},
|
||||
onError: (error, variables, onMutateResult, context) => {
|
||||
// An error happened!
|
||||
console.log(`rolling back optimistic update with id ${onMutateResult.id}`)
|
||||
},
|
||||
onSuccess: (data, variables, onMutateResult, context) => {
|
||||
// Boom baby!
|
||||
},
|
||||
onSettled: (data, error, variables, onMutateResult, context) => {
|
||||
// Error or success... doesn't matter!
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
[//]: # 'Example5'
|
||||
|
||||
```ts
|
||||
addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: async () => {
|
||||
console.log("I'm first!")
|
||||
},
|
||||
onSettled: async () => {
|
||||
console.log("I'm second!")
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example5'
|
||||
[//]: # 'Example6'
|
||||
|
||||
```ts
|
||||
addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: (data, variables, onMutateResult, context) => {
|
||||
// I will fire first
|
||||
},
|
||||
onError: (error, variables, onMutateResult, context) => {
|
||||
// I will fire first
|
||||
},
|
||||
onSettled: (data, error, variables, onMutateResult, context) => {
|
||||
// I will fire first
|
||||
},
|
||||
}))
|
||||
|
||||
addTodoMutation.mutate(todo, {
|
||||
onSuccess: (data, variables, onMutateResult, context) => {
|
||||
// I will fire second!
|
||||
},
|
||||
onError: (error, variables, onMutateResult, context) => {
|
||||
// I will fire second!
|
||||
},
|
||||
onSettled: (data, error, variables, onMutateResult, context) => {
|
||||
// I will fire second!
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
[//]: # 'Example6'
|
||||
[//]: # 'Example7'
|
||||
|
||||
```ts
|
||||
export class Example {
|
||||
readonly addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: (data, variables, onMutateResult, context) => {
|
||||
// Will be called 3 times
|
||||
},
|
||||
}))
|
||||
|
||||
doMutations() {
|
||||
;['Todo 1', 'Todo 2', 'Todo 3'].forEach((todo) => {
|
||||
this.addTodoMutation.mutate(todo, {
|
||||
onSuccess: (data, variables, onMutateResult, context) => {
|
||||
// Will execute only once, for the last mutation (Todo 3),
|
||||
// regardless which mutation resolves first
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example7'
|
||||
[//]: # 'Example8'
|
||||
|
||||
```ts
|
||||
addTodoMutation = injectMutation(() => ({ mutationFn: addTodo }))
|
||||
|
||||
try {
|
||||
const todo = await addTodoMutation.mutateAsync(todo)
|
||||
console.log(todo)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
} finally {
|
||||
console.log('done')
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example8'
|
||||
[//]: # 'Example9'
|
||||
|
||||
```ts
|
||||
addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
retry: 3,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example9'
|
||||
[//]: # 'Example10'
|
||||
|
||||
```ts
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
// Define the "addTodo" mutation
|
||||
queryClient.setMutationDefaults(['addTodo'], {
|
||||
mutationFn: addTodo,
|
||||
onMutate: async (variables, context) => {
|
||||
// Cancel current queries for the todos list
|
||||
await context.client.cancelQueries({ queryKey: ['todos'] })
|
||||
|
||||
// Create optimistic todo
|
||||
const optimisticTodo = { id: uuid(), title: variables.title }
|
||||
|
||||
// Add optimistic todo to todos list
|
||||
context.client.setQueryData(['todos'], (old) => [...old, optimisticTodo])
|
||||
|
||||
// Return result with the optimistic todo
|
||||
return { optimisticTodo }
|
||||
},
|
||||
onSuccess: (result, variables, onMutateResult, context) => {
|
||||
// Replace optimistic todo in the todos list with the result
|
||||
context.client.setQueryData(['todos'], (old) =>
|
||||
old.map((todo) =>
|
||||
todo.id === onMutateResult.optimisticTodo.id ? result : todo,
|
||||
),
|
||||
)
|
||||
},
|
||||
onError: (error, variables, onMutateResult, context) => {
|
||||
// Remove optimistic todo from the todos list
|
||||
context.client.setQueryData(['todos'], (old) =>
|
||||
old.filter((todo) => todo.id !== onMutateResult.optimisticTodo.id),
|
||||
)
|
||||
},
|
||||
retry: 3,
|
||||
})
|
||||
|
||||
class someComponent {
|
||||
// Start mutation in some component:
|
||||
readonly addTodoMutation = injectMutation(() => ({
|
||||
mutationKey: ['addTodo'],
|
||||
}))
|
||||
|
||||
someMethod() {
|
||||
addTodoMutation.mutate({ title: 'title' })
|
||||
}
|
||||
}
|
||||
|
||||
// If the mutation has been paused because the device is for example offline,
|
||||
// Then the paused mutation can be dehydrated when the application quits:
|
||||
const state = dehydrate(queryClient)
|
||||
|
||||
// The mutation can then be hydrated again when the application is started:
|
||||
hydrate(queryClient, state)
|
||||
|
||||
// Resume the paused mutations:
|
||||
queryClient.resumePausedMutations()
|
||||
```
|
||||
|
||||
[//]: # 'Example10'
|
||||
[//]: # 'Example11'
|
||||
[//]: # 'Example11'
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
5
docs/framework/angular/guides/network-mode.md
Normal file
5
docs/framework/angular/guides/network-mode.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
id: network-mode
|
||||
title: Network Mode
|
||||
ref: docs/framework/react/guides/network-mode.md
|
||||
---
|
||||
168
docs/framework/angular/guides/optimistic-updates.md
Normal file
168
docs/framework/angular/guides/optimistic-updates.md
Normal file
@@ -0,0 +1,168 @@
|
||||
---
|
||||
id: optimistic-updates
|
||||
title: Optimistic Updates
|
||||
ref: docs/framework/react/guides/optimistic-updates.md
|
||||
replace:
|
||||
{
|
||||
'React': 'Angular',
|
||||
'useMutation': 'injectMutation',
|
||||
'hook': 'function',
|
||||
'useMutationState': 'injectMutationState',
|
||||
'addTodoMutation': 'addTodo',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'ExampleUI1'
|
||||
|
||||
```ts
|
||||
addTodo = injectMutation(() => ({
|
||||
mutationFn: (newTodo: string) => axios.post('/api/data', { text: newTodo }),
|
||||
// make sure to _return_ the Promise from the query invalidation
|
||||
// so that the mutation stays in `pending` state until the refetch is finished
|
||||
onSettled: async () => {
|
||||
return await queryClient.invalidateQueries({ queryKey: ['todos'] })
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'ExampleUI1'
|
||||
[//]: # 'ExampleUI2'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
template: `
|
||||
@for (todo of todos.data(); track todo.id) {
|
||||
<li>{{ todo.title }}</li>
|
||||
}
|
||||
@if (addTodo.isPending()) {
|
||||
<li style="opacity: 0.5">{{ addTodo.variables() }}</li>
|
||||
}
|
||||
`,
|
||||
})
|
||||
class TodosComponent {}
|
||||
```
|
||||
|
||||
[//]: # 'ExampleUI2'
|
||||
[//]: # 'ExampleUI3'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
template: `
|
||||
@if (addTodo.isError()) {
|
||||
<li style="color: red">
|
||||
{{ addTodo.variables() }}
|
||||
<button (click)="addTodo.mutate(addTodo.variables())">Retry</button>
|
||||
</li>
|
||||
}
|
||||
`,
|
||||
})
|
||||
class TodosComponent {}
|
||||
```
|
||||
|
||||
[//]: # 'ExampleUI3'
|
||||
[//]: # 'ExampleUI4'
|
||||
|
||||
```ts
|
||||
// somewhere in your app
|
||||
addTodo = injectMutation(() => ({
|
||||
mutationFn: (newTodo: string) => axios.post('/api/data', { text: newTodo }),
|
||||
onSettled: () => queryClient.invalidateQueries({ queryKey: ['todos'] }),
|
||||
mutationKey: ['addTodo'],
|
||||
}))
|
||||
|
||||
// access variables somewhere else
|
||||
|
||||
mutationState = injectMutationState<string>(() => ({
|
||||
filters: { mutationKey: ['addTodo'], status: 'pending' },
|
||||
select: (mutation) => mutation.state.variables,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'ExampleUI4'
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
queryClient = inject(QueryClient)
|
||||
|
||||
updateTodo = injectMutation(() => ({
|
||||
mutationFn: updateTodo,
|
||||
// When mutate is called:
|
||||
onMutate: async (newTodo, context) => {
|
||||
// Cancel any outgoing refetches
|
||||
// (so they don't overwrite our optimistic update)
|
||||
await context.client.cancelQueries({ queryKey: ['todos'] })
|
||||
|
||||
// Snapshot the previous value
|
||||
const previousTodos = context.client.getQueryData(['todos'])
|
||||
|
||||
// Optimistically update to the new value
|
||||
context.client.setQueryData(['todos'], (old) => [...old, newTodo])
|
||||
|
||||
// Return a result object with the snapshotted value
|
||||
return { previousTodos }
|
||||
},
|
||||
// If the mutation fails,
|
||||
// use the result returned from onMutate to roll back
|
||||
onError: (err, newTodo, onMutateResult, context) => {
|
||||
context.client.setQueryData(['todos'], onMutateResult.previousTodos)
|
||||
},
|
||||
// Always refetch after error or success:
|
||||
onSettled: (data, error, variables, onMutateResult, context) => {
|
||||
context.client.invalidateQueries({ queryKey: ['todos'] })
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
queryClient = inject(QueryClient)
|
||||
|
||||
updateTodo = injectMutation(() => ({
|
||||
mutationFn: updateTodo,
|
||||
// When mutate is called:
|
||||
onMutate: async (newTodo, context) => {
|
||||
// Cancel any outgoing refetches
|
||||
// (so they don't overwrite our optimistic update)
|
||||
await context.client.cancelQueries({ queryKey: ['todos', newTodo.id] })
|
||||
|
||||
// Snapshot the previous value
|
||||
const previousTodo = context.client.getQueryData(['todos', newTodo.id])
|
||||
|
||||
// Optimistically update to the new value
|
||||
context.client.setQueryData(['todos', newTodo.id], newTodo)
|
||||
|
||||
// Return a result with the previous and new todo
|
||||
return { previousTodo, newTodo }
|
||||
},
|
||||
// If the mutation fails, use the result we returned above
|
||||
onError: (err, newTodo, onMutateResult, context) => {
|
||||
context.client.setQueryData(
|
||||
['todos', onMutateResult.newTodo.id],
|
||||
onMutateResult.previousTodo,
|
||||
)
|
||||
},
|
||||
// Always refetch after error or success:
|
||||
onSettled: (newTodo, error, variables, onMutateResult, context) => {
|
||||
context.client.invalidateQueries({ queryKey: ['todos', newTodo.id] })
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
injectMutation({
|
||||
mutationFn: updateTodo,
|
||||
// ...
|
||||
onSettled: (newTodo, error, variables, onMutateResult, context) => {
|
||||
if (error) {
|
||||
// do something
|
||||
}
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
113
docs/framework/angular/guides/paginated-queries.md
Normal file
113
docs/framework/angular/guides/paginated-queries.md
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
id: paginated-queries
|
||||
title: Paginated / Lagged Queries
|
||||
ref: docs/framework/react/guides/paginated-queries.md
|
||||
replace:
|
||||
{
|
||||
'useQuery': 'injectQuery',
|
||||
'useInfiniteQuery': 'injectInfiniteQuery',
|
||||
'hook': 'function',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
const projectsQuery = injectQuery(() => ({
|
||||
queryKey: ['projects', page()],
|
||||
queryFn: fetchProjects,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'pagination-example',
|
||||
template: `
|
||||
<div>
|
||||
<p>
|
||||
In this example, each page of data remains visible as the next page is
|
||||
fetched. The buttons and capability to proceed to the next page are also
|
||||
suppressed until the next page cursor is known. Each page is cached as a
|
||||
normal query too, so when going to previous pages, you'll see them
|
||||
instantaneously while they are also re-fetched invisibly in the
|
||||
background.
|
||||
</p>
|
||||
@if (projectsQuery.status() === 'pending') {
|
||||
<div>Loading...</div>
|
||||
} @else if (projectsQuery.status() === 'error') {
|
||||
<div>Error: {{ projectsQuery.error().message }}</div>
|
||||
} @else {
|
||||
<!-- 'data' will either resolve to the latest page's data -->
|
||||
<!-- or if fetching a new page, the last successful page's data -->
|
||||
<div>
|
||||
@for (project of projectsQuery.data().projects; track project.id) {
|
||||
<p>{{ project.name }}</p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<div>Current Page: {{ page() + 1 }}</div>
|
||||
<button (click)="previousPage()" [disabled]="page() === 0">
|
||||
Previous Page
|
||||
</button>
|
||||
<button
|
||||
(click)="nextPage()"
|
||||
[disabled]="
|
||||
projectsQuery.isPlaceholderData() || !projectsQuery.data()?.hasMore
|
||||
"
|
||||
>
|
||||
Next Page
|
||||
</button>
|
||||
<!-- Since the last page's data potentially sticks around between page requests, -->
|
||||
<!-- we can use 'isFetching' to show a background loading -->
|
||||
<!-- indicator since our status === 'pending' state won't be triggered -->
|
||||
@if (projectsQuery.isFetching()) {
|
||||
<span> Loading...</span>
|
||||
}
|
||||
</div>
|
||||
`,
|
||||
})
|
||||
export class PaginationExampleComponent {
|
||||
page = signal(0)
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
readonly projectsQuery = injectQuery(() => ({
|
||||
queryKey: ['projects', this.page()],
|
||||
queryFn: () => lastValueFrom(fetchProjects(this.page())),
|
||||
placeholderData: keepPreviousData,
|
||||
staleTime: 5000,
|
||||
}))
|
||||
|
||||
constructor() {
|
||||
effect(() => {
|
||||
// Prefetch the next page!
|
||||
if (
|
||||
!this.projectsQuery.isPlaceholderData() &&
|
||||
this.projectsQuery.data()?.hasMore
|
||||
) {
|
||||
void this.#queryClient
|
||||
.query({
|
||||
queryKey: ['projects', this.page() + 1],
|
||||
queryFn: () => lastValueFrom(fetchProjects(this.page() + 1)),
|
||||
})
|
||||
.catch(noop)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
previousPage() {
|
||||
this.page.update((old) => Math.max(old - 1, 0))
|
||||
}
|
||||
|
||||
nextPage() {
|
||||
this.page.update((old) =>
|
||||
this.projectsQuery.data()?.hasMore ? old + 1 : old,
|
||||
)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
63
docs/framework/angular/guides/parallel-queries.md
Normal file
63
docs/framework/angular/guides/parallel-queries.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: parallel-queries
|
||||
title: Parallel Queries
|
||||
ref: docs/framework/react/guides/parallel-queries.md
|
||||
replace:
|
||||
{
|
||||
'If the number of queries you need to execute is changing from render to render, you cannot use manual querying since that would violate the rules of hooks. Instead, ': '',
|
||||
'hook': 'function',
|
||||
'React': 'Angular',
|
||||
'hooks': 'functions',
|
||||
'useQuery': 'injectQuery',
|
||||
'useInfiniteQuery': 'injectInfiniteQuery',
|
||||
'useQueries': 'injectQueries',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
export class AppComponent {
|
||||
// The following queries will execute in parallel
|
||||
readonly usersQuery = injectQuery(() => ({
|
||||
queryKey: ['users'],
|
||||
queryFn: fetchUsers,
|
||||
}))
|
||||
readonly teamsQuery = injectQuery(() => ({
|
||||
queryKey: ['teams'],
|
||||
queryFn: fetchTeams,
|
||||
}))
|
||||
readonly projectsQuery = injectQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: fetchProjects,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Info'
|
||||
[//]: # 'Info'
|
||||
[//]: # 'DynamicParallelIntro'
|
||||
|
||||
TanStack Query provides `injectQueries`, which you can use to dynamically execute as many queries in parallel as you'd like.
|
||||
|
||||
[//]: # 'DynamicParallelIntro'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
export class AppComponent {
|
||||
users = signal<Array<User>>([])
|
||||
|
||||
// Please note injectQueries is under development and this code does not work yet
|
||||
readonly userQueries = injectQueries(() => ({
|
||||
queries: users().map((user) => {
|
||||
return {
|
||||
queryKey: ['user', user.id],
|
||||
queryFn: () => fetchUserById(user.id),
|
||||
}
|
||||
}),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
58
docs/framework/angular/guides/placeholder-query-data.md
Normal file
58
docs/framework/angular/guides/placeholder-query-data.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
id: placeholder-query-data
|
||||
title: Placeholder Query Data
|
||||
ref: docs/framework/react/guides/placeholder-query-data.md
|
||||
---
|
||||
|
||||
[//]: # 'ExampleValue'
|
||||
|
||||
```ts
|
||||
class TodosComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => fetch('/todos'),
|
||||
placeholderData: placeholderTodos,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'ExampleValue'
|
||||
[//]: # 'Memoization'
|
||||
[//]: # 'Memoization'
|
||||
[//]: # 'ExampleFunction'
|
||||
|
||||
```ts
|
||||
class TodosComponent {
|
||||
readonly todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', id()],
|
||||
queryFn: () => fetch(`/todos/${id}`),
|
||||
placeholderData: (previousData, previousQuery) => previousData,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'ExampleFunction'
|
||||
[//]: # 'ExampleCache'
|
||||
|
||||
```ts
|
||||
export class BlogPostComponent {
|
||||
postId = input.required<number>()
|
||||
readonly queryClient = inject(QueryClient)
|
||||
|
||||
readonly blogPostQuery = injectQuery(() => ({
|
||||
queryKey: ['blogPost', this.postId()],
|
||||
queryFn: () => fetch(`/blogPosts/${this.postId()}`),
|
||||
placeholderData: () => {
|
||||
// Use the smaller/preview version of the blogPost from the 'blogPosts'
|
||||
// query as the placeholder data for this blogPost query
|
||||
return this.queryClient
|
||||
.getQueryData(['blogPosts'])
|
||||
?.find((d) => d.id === this.postId())
|
||||
},
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'ExampleCache'
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
104
docs/framework/angular/guides/queries.md
Normal file
104
docs/framework/angular/guides/queries.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
id: queries
|
||||
title: Queries
|
||||
ref: docs/framework/react/guides/queries.md
|
||||
replace:
|
||||
{
|
||||
'React': 'Angular',
|
||||
'react-query': 'angular-query',
|
||||
'promise': 'promise or observable',
|
||||
'custom hooks': 'services',
|
||||
'the `useQuery` hook': '`injectQuery`',
|
||||
'`useQuery`': '`injectQuery`',
|
||||
"TypeScript will also narrow the type of data correctly if you've checked for pending and error before accessing it.": 'TypeScript will only narrow the type when checking boolean signals such as `isPending` and `isError`.',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
import { injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export class TodosComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
@if (todosQuery.isPending()) {
|
||||
<span>Loading...</span>
|
||||
} @else if (todosQuery.isError()) {
|
||||
<span>Error: {{ todosQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<!-- We can assume by this point that status === 'success' -->
|
||||
@for (todo of todosQuery.data(); track todo.id) {
|
||||
<li>{{ todo.title }}</li>
|
||||
} @empty {
|
||||
<li>No todos found</li>
|
||||
}
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class PostsComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
If booleans aren't your thing, you can always use the `status` state as well:
|
||||
|
||||
[//]: # 'Example4'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
@switch (todosQuery.status()) {
|
||||
@case ('pending') {
|
||||
<span>Loading...</span>
|
||||
}
|
||||
@case ('error') {
|
||||
<span>Error: {{ todosQuery.error()?.message }}</span>
|
||||
}
|
||||
<!-- also status === 'success', but "else" logic works, too -->
|
||||
@default {
|
||||
<ul>
|
||||
@for (todo of todosQuery.data(); track todo.id) {
|
||||
<li>{{ todo.title }}</li>
|
||||
} @empty {
|
||||
<li>No todos found</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
`,
|
||||
})
|
||||
class TodosComponent {}
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
105
docs/framework/angular/guides/query-cancellation.md
Normal file
105
docs/framework/angular/guides/query-cancellation.md
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
id: query-cancellation
|
||||
title: Query Cancellation
|
||||
---
|
||||
|
||||
TanStack Query provides each query function with an [`AbortSignal` instance](https://developer.mozilla.org/docs/Web/API/AbortSignal). When a query becomes out-of-date or inactive, this `signal` will become aborted. This means that all queries are cancellable, and you can respond to the cancellation inside your query function if desired. The best part about this is that it allows you to continue to use normal async/await syntax while getting all the benefits of automatic cancellation.
|
||||
|
||||
## Default behavior
|
||||
|
||||
By default, queries that unmount or become unused before their promises are resolved are _not_ cancelled. This means that after the promise has resolved, the resulting data will be available in the cache. This is helpful if you've started receiving a query, but then unmount the component before it finishes. If you mount the component again and the query has not been garbage collected yet, data will be available.
|
||||
|
||||
However, if you consume the `AbortSignal`, the Promise will be cancelled (e.g. aborting the fetch) and therefore, also the Query must be cancelled. Cancelling the query will result in its state being _reverted_ to its previous state.
|
||||
|
||||
## Using `HttpClient`
|
||||
|
||||
```ts
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
postQuery = injectQuery(() => ({
|
||||
enabled: this.postId() > 0,
|
||||
queryKey: ['post', this.postId()],
|
||||
queryFn: async (context): Promise<Post> => {
|
||||
const abort$ = fromEvent(context.signal, 'abort')
|
||||
return lastValueFrom(this.getPost$(this.postId()).pipe(takeUntil(abort$)))
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
## Using `fetch`
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: async ({ signal }) => {
|
||||
const todosResponse = await fetch('/todos', {
|
||||
// Pass the signal to one fetch
|
||||
signal,
|
||||
})
|
||||
const todos = await todosResponse.json()
|
||||
|
||||
const todoDetails = todos.map(async ({ details }) => {
|
||||
const response = await fetch(details, {
|
||||
// Or pass it to several
|
||||
signal,
|
||||
})
|
||||
return response.json()
|
||||
})
|
||||
|
||||
return Promise.all(todoDetails)
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
## Using `axios`
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
import axios from 'axios'
|
||||
|
||||
const todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: ({ signal }) =>
|
||||
axios.get('/todos', {
|
||||
// Pass the signal to `axios`
|
||||
signal,
|
||||
}),
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
## Manual Cancellation
|
||||
|
||||
You might want to cancel a query manually. For example, if the request takes a long time to finish, you can allow the user to click a cancel button to stop the request. To do this, you just need to call `queryClient.cancelQueries({ queryKey })`, which will cancel the query and revert it back to its previous state. If you have consumed the `signal` passed to the query function, TanStack Query will additionally also cancel the Promise.
|
||||
|
||||
[//]: # 'Example7'
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
template: `<button (click)="onCancel()">Cancel</button>`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: async ({ signal }) => {
|
||||
const resp = await fetch('/todos', { signal })
|
||||
return resp.json()
|
||||
},
|
||||
}))
|
||||
|
||||
readonly queryClient = inject(QueryClient)
|
||||
|
||||
onCancel() {
|
||||
this.queryClient.cancelQueries(['todos'])
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example7'
|
||||
79
docs/framework/angular/guides/query-functions.md
Normal file
79
docs/framework/angular/guides/query-functions.md
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
id: query-functions
|
||||
title: Query Functions
|
||||
ref: docs/framework/react/guides/query-functions.md
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchAllTodos }))
|
||||
injectQuery(() => ({
|
||||
queryKey: ['todos', todoId],
|
||||
queryFn: () => fetchTodoById(todoId),
|
||||
}))
|
||||
injectQuery(() => ({
|
||||
queryKey: ['todos', todoId],
|
||||
queryFn: async () => {
|
||||
const data = await fetchTodoById(todoId)
|
||||
return data
|
||||
},
|
||||
}))
|
||||
injectQuery(() => ({
|
||||
queryKey: ['todos', todoId],
|
||||
queryFn: ({ queryKey }) => fetchTodoById(queryKey[1]),
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', todoId()],
|
||||
queryFn: async () => {
|
||||
if (somethingGoesWrong) {
|
||||
throw new Error('Oh no!')
|
||||
}
|
||||
if (somethingElseGoesWrong) {
|
||||
return Promise.reject(new Error('Oh no!'))
|
||||
}
|
||||
|
||||
return data
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', todoId()],
|
||||
queryFn: async () => {
|
||||
const response = await fetch('/todos/' + todoId)
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok')
|
||||
}
|
||||
return response.json()
|
||||
},
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { status: status(), page: page() }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
|
||||
// Access the key, status and page variables in your query function!
|
||||
function fetchTodoList({ queryKey }) {
|
||||
const [_key, { status, page }] = queryKey
|
||||
return new Promise()
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
112
docs/framework/angular/guides/query-invalidation.md
Normal file
112
docs/framework/angular/guides/query-invalidation.md
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
id: query-invalidation
|
||||
title: Query Invalidation
|
||||
ref: docs/framework/react/guides/query-invalidation.md
|
||||
replace: { 'useQuery': 'injectQuery', 'hooks': 'functions' }
|
||||
---
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
import { injectQuery, QueryClient } from '@tanstack/angular-query-experimental'
|
||||
|
||||
class QueryInvalidationExample {
|
||||
readonly queryClient = inject(QueryClient)
|
||||
|
||||
invalidateQueries() {
|
||||
this.queryClient.invalidateQueries({ queryKey: ['todos'] })
|
||||
}
|
||||
|
||||
// Both queries below will be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { page: 1 }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
You can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['todos', { type: 'done' }],
|
||||
})
|
||||
|
||||
// The query below will be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { type: 'done' }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
|
||||
// However, the following query below will NOT be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
The `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:
|
||||
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['todos'],
|
||||
exact: true,
|
||||
})
|
||||
|
||||
// The query below will be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
|
||||
// However, the following query below will NOT be invalidated
|
||||
const todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { type: 'done' }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
|
||||
If you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each `Query` instance from the query cache and allow you to return `true` or `false` for whether you want to invalidate that query:
|
||||
|
||||
[//]: # 'Example5'
|
||||
|
||||
```ts
|
||||
queryClient.invalidateQueries({
|
||||
predicate: (query) =>
|
||||
query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10,
|
||||
})
|
||||
|
||||
// The query below will be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { version: 20 }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
|
||||
// The query below will be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { version: 10 }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
|
||||
// However, the following query below will NOT be invalidated
|
||||
todoListQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', { version: 5 }],
|
||||
queryFn: fetchTodoList,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example5'
|
||||
65
docs/framework/angular/guides/query-keys.md
Normal file
65
docs/framework/angular/guides/query-keys.md
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
id: query-keys
|
||||
title: Query Keys
|
||||
ref: docs/framework/react/guides/query-keys.md
|
||||
#todo: exhaustive-deps is at least for now React-only
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
// A list of todos
|
||||
injectQuery(() => ({ queryKey: ['todos'], ... }))
|
||||
|
||||
// Something else, whatever!
|
||||
injectQuery(() => ({ queryKey: ['something', 'special'], ... }))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
// An individual todo
|
||||
injectQuery(() => ({queryKey: ['todo', 5], ...}))
|
||||
|
||||
// An individual todo in a "preview" format
|
||||
injectQuery(() => ({queryKey: ['todo', 5, {preview: true}], ...}))
|
||||
|
||||
// A list of todos that are "done"
|
||||
injectQuery(() => ({queryKey: ['todos', {type: 'done'}], ...}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
injectQuery(() => ({ queryKey: ['todos', { status, page }], ... }))
|
||||
injectQuery(() => ({ queryKey: ['todos', { page, status }], ...}))
|
||||
injectQuery(() => ({ queryKey: ['todos', { page, status, other: undefined }], ... }))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
[//]: # 'Example4'
|
||||
|
||||
```ts
|
||||
injectQuery(() => ({ queryKey: ['todos', status, page], ... }))
|
||||
injectQuery(() => ({ queryKey: ['todos', page, status], ...}))
|
||||
injectQuery(() => ({ queryKey: ['todos', undefined, page, status], ...}))
|
||||
```
|
||||
|
||||
[//]: # 'Example4'
|
||||
[//]: # 'Example5'
|
||||
|
||||
```ts
|
||||
todoId = signal(-1)
|
||||
|
||||
injectQuery(() => ({
|
||||
enabled: todoId() > 0,
|
||||
queryKey: ['todos', todoId()],
|
||||
queryFn: () => fetchTodoById(todoId()),
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example5'
|
||||
[//]: # 'Materials'
|
||||
[//]: # 'Materials'
|
||||
58
docs/framework/angular/guides/query-options.md
Normal file
58
docs/framework/angular/guides/query-options.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
id: query-options
|
||||
title: Query Options
|
||||
ref: docs/framework/react/guides/query-options.md
|
||||
---
|
||||
|
||||
[//]: # 'Example1'
|
||||
|
||||
```ts
|
||||
import { queryOptions, noop } from '@tanstack/angular-query-experimental'
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class QueriesService {
|
||||
private readonly http = inject(HttpClient)
|
||||
|
||||
post(postId: number) {
|
||||
return queryOptions({
|
||||
queryKey: ['post', postId],
|
||||
queryFn: () => {
|
||||
return lastValueFrom(
|
||||
this.http.get<Post>(
|
||||
`https://jsonplaceholder.typicode.com/posts/${postId}`,
|
||||
),
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// usage:
|
||||
|
||||
postId = input.required({
|
||||
transform: numberAttribute,
|
||||
})
|
||||
queries = inject(QueriesService)
|
||||
|
||||
postQuery = injectQuery(() => this.queries.post(this.postId()))
|
||||
|
||||
queryClient.query(this.queries.post(23)).catch(noop)
|
||||
queryClient.setQueryData(this.queries.post(42).queryKey, newPost)
|
||||
```
|
||||
|
||||
[//]: # 'Example1'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
// Type inference still works, so groupQuery.data will be the return type of select instead of queryFn
|
||||
queries = inject(QueriesService)
|
||||
|
||||
groupQuery = injectQuery(() => ({
|
||||
...groupOptions(1),
|
||||
select: (data) => data.title,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
66
docs/framework/angular/guides/query-retries.md
Normal file
66
docs/framework/angular/guides/query-retries.md
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
id: query-retries
|
||||
title: Query Retries
|
||||
ref: docs/framework/react/guides/query-retries.md
|
||||
replace:
|
||||
{
|
||||
'Provider': 'Plugin',
|
||||
'useQuery': 'injectQuery',
|
||||
'useMutation': 'injectMutation',
|
||||
}
|
||||
---
|
||||
|
||||
[//]: # 'Info'
|
||||
[//]: # 'Info'
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
import { injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
// Make a specific query retry a certain number of times
|
||||
const todoQuery = injectQuery(() => ({
|
||||
queryKey: ['todos', 1],
|
||||
queryFn: fetchTodoListPage,
|
||||
retry: 10, // Will retry failed requests 10 times before displaying an error
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
// Configure for all queries
|
||||
import {
|
||||
QueryCache,
|
||||
QueryClient,
|
||||
provideTanStackQuery,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
bootstrapApplication(AppComponent, {
|
||||
providers: [provideTanStackQuery(queryClient)],
|
||||
})
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
|
||||
Though it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:
|
||||
|
||||
[//]: # 'Example3'
|
||||
|
||||
```ts
|
||||
const todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodoList,
|
||||
retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example3'
|
||||
5
docs/framework/angular/guides/scroll-restoration.md
Normal file
5
docs/framework/angular/guides/scroll-restoration.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
id: scroll-restoration
|
||||
title: Scroll Restoration
|
||||
ref: docs/framework/react/guides/scroll-restoration.md
|
||||
---
|
||||
157
docs/framework/angular/guides/testing.md
Normal file
157
docs/framework/angular/guides/testing.md
Normal file
@@ -0,0 +1,157 @@
|
||||
---
|
||||
id: testing
|
||||
title: Testing
|
||||
---
|
||||
|
||||
Most Angular tests using TanStack Query will involve services or components that call `injectQuery`/`injectMutation`.
|
||||
|
||||
TanStack Query's `inject*` functions integrate with [`PendingTasks`](https://angular.dev/api/core/PendingTasks) which ensures the framework is aware of in-progress queries and mutations.
|
||||
|
||||
This means tests and SSR can wait until mutations and queries resolve. In unit tests you can use `ApplicationRef.whenStable()` or `fixture.whenStable()` to await query completion. This works for both Zone.js and Zoneless setups.
|
||||
|
||||
> This integration requires Angular 19 or later. Earlier versions of Angular do not support `PendingTasks`.
|
||||
|
||||
## TestBed setup
|
||||
|
||||
Create a fresh `QueryClient` for every spec and provide it with `provideTanStackQuery` or `provideQueryClient`. This keeps caches isolated and lets you change default options per test:
|
||||
|
||||
```ts
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
retry: false, // ✅ faster failure tests
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
TestBed.configureTestingModule({
|
||||
providers: [provideTanStackQuery(queryClient)],
|
||||
})
|
||||
```
|
||||
|
||||
> If your applications actual TanStack Query config is used in unit tests, make sure `withDevtools` is not accidentally included in test providers. This can cause slow tests. It is best to keep test and production configs separate.
|
||||
|
||||
If you share helpers, remember to call `queryClient.clear()` (or build a new instance) in `afterEach` so data from one test never bleeds into another.
|
||||
|
||||
## First query test
|
||||
|
||||
Query tests typically run inside `TestBed.runInInjectionContext`, then wait for stability:
|
||||
|
||||
```ts
|
||||
const appRef = TestBed.inject(ApplicationRef)
|
||||
const query = TestBed.runInInjectionContext(() =>
|
||||
injectQuery(() => ({
|
||||
queryKey: ['greeting'],
|
||||
queryFn: () => 'Hello',
|
||||
})),
|
||||
)
|
||||
|
||||
TestBed.tick() // Trigger effect
|
||||
|
||||
// Application is stable when queries are idle
|
||||
await appRef.whenStable()
|
||||
|
||||
expect(query.status()).toBe('success')
|
||||
expect(query.data()).toBe('Hello')
|
||||
```
|
||||
|
||||
PendingTasks will have `whenStable()` resolve after the query settles. When using fake timers (Vitest), advance the clock and a microtask before awaiting stability:
|
||||
|
||||
```ts
|
||||
await vi.advanceTimersByTimeAsync(0)
|
||||
await Promise.resolve()
|
||||
await appRef.whenStable()
|
||||
```
|
||||
|
||||
## Testing components
|
||||
|
||||
For components, bootstrap them through `TestBed.createComponent`, then await `fixture.whenStable()`:
|
||||
|
||||
```ts
|
||||
const fixture = TestBed.createComponent(ExampleComponent)
|
||||
|
||||
await fixture.whenStable()
|
||||
expect(fixture.componentInstance.query.data()).toEqual({ value: 42 })
|
||||
```
|
||||
|
||||
## Handling retries
|
||||
|
||||
Retries slow failing tests because the default backoff runs three times. Set `retry: false` (or a specific number) through `defaultOptions` or per query to keep tests fast. If a query intentionally retries, assert on the final state rather than intermediate counts.
|
||||
|
||||
## HttpClient & network stubs
|
||||
|
||||
Angular's `HttpClientTestingModule` plays nicely with PendingTasks. Register it alongside the Query provider and flush responses through `HttpTestingController`:
|
||||
|
||||
```ts
|
||||
TestBed.configureTestingModule({
|
||||
imports: [HttpClientTestingModule],
|
||||
providers: [provideTanStackQuery(queryClient)],
|
||||
})
|
||||
|
||||
const httpCtrl = TestBed.inject(HttpTestingController)
|
||||
const query = TestBed.runInInjectionContext(() =>
|
||||
injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => lastValueFrom(TestBed.inject(HttpClient).get('/api/todos')),
|
||||
})),
|
||||
)
|
||||
|
||||
const fixturePromise = TestBed.inject(ApplicationRef).whenStable()
|
||||
httpCtrl.expectOne('/api/todos').flush([{ id: 1 }])
|
||||
await fixturePromise
|
||||
|
||||
expect(query.data()).toEqual([{ id: 1 }])
|
||||
httpCtrl.verify()
|
||||
```
|
||||
|
||||
## Infinite queries & pagination
|
||||
|
||||
Use the same pattern for infinite queries: call `fetchNextPage()`, advance timers if you are faking time, then await stability and assert on `data().pages`.
|
||||
|
||||
```ts
|
||||
const infinite = TestBed.runInInjectionContext(() =>
|
||||
injectInfiniteQuery(() => ({
|
||||
queryKey: ['pages'],
|
||||
queryFn: ({ pageParam = 1 }) => fetchPage(pageParam),
|
||||
getNextPageParam: (last, all) => all.length + 1,
|
||||
})),
|
||||
)
|
||||
|
||||
await appRef.whenStable()
|
||||
expect(infinite.data().pages).toHaveLength(1)
|
||||
|
||||
await infinite.fetchNextPage()
|
||||
await vi.advanceTimersByTimeAsync(0)
|
||||
await appRef.whenStable()
|
||||
|
||||
expect(infinite.data().pages).toHaveLength(2)
|
||||
```
|
||||
|
||||
## Mutations and optimistic updates
|
||||
|
||||
```ts
|
||||
const mutation = TestBed.runInInjectionContext(() =>
|
||||
injectMutation(() => ({
|
||||
mutationFn: async (input: string) => input.toUpperCase(),
|
||||
})),
|
||||
)
|
||||
|
||||
mutation.mutate('test')
|
||||
|
||||
// Trigger effect
|
||||
TestBed.tick()
|
||||
|
||||
await appRef.whenStable()
|
||||
|
||||
expect(mutation.isSuccess()).toBe(true)
|
||||
expect(mutation.data()).toBe('TEST')
|
||||
```
|
||||
|
||||
## Quick checklist
|
||||
|
||||
- Fresh `QueryClient` per test (and clear it afterwards)
|
||||
- Disable or control retries to avoid timeouts
|
||||
- Advance timers + microtasks before `whenStable()` when using fake timers
|
||||
- Use `HttpClientTestingModule` or your preferred mock to assert network calls
|
||||
- Await `whenStable()` after every `refetch`, `fetchNextPage`, or mutation
|
||||
- Prefer `TestBed.runInInjectionContext` for service tests and `fixture.whenStable()` for component tests
|
||||
39
docs/framework/angular/guides/window-focus-refetching.md
Normal file
39
docs/framework/angular/guides/window-focus-refetching.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
id: window-focus-refetching
|
||||
title: Window Focus Refetching
|
||||
ref: docs/framework/react/guides/window-focus-refetching.md
|
||||
replace: { '@tanstack/react-query': '@tanstack/angular-query-experimental' }
|
||||
---
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
```ts
|
||||
export const appConfig: ApplicationConfig = {
|
||||
providers: [
|
||||
provideTanStackQuery(
|
||||
new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
refetchOnWindowFocus: false, // default: true
|
||||
},
|
||||
},
|
||||
}),
|
||||
),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
[//]: # 'Example2'
|
||||
|
||||
```ts
|
||||
injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: fetchTodos,
|
||||
refetchOnWindowFocus: false,
|
||||
}))
|
||||
```
|
||||
|
||||
[//]: # 'Example2'
|
||||
[//]: # 'ReactNative'
|
||||
[//]: # 'ReactNative'
|
||||
34
docs/framework/angular/installation.md
Normal file
34
docs/framework/angular/installation.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
id: installation
|
||||
title: Installation
|
||||
---
|
||||
|
||||
> IMPORTANT: This library is currently in an experimental stage. This means that breaking changes will happen in minor AND patch releases. Upgrade carefully. If you use this in production while in experimental stage, please lock your version to a patch-level version to avoid unexpected breaking changes.
|
||||
|
||||
### NPM
|
||||
|
||||
_Angular Query is compatible with Angular v16 and higher_
|
||||
|
||||
```bash
|
||||
npm i @tanstack/angular-query-experimental
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
pnpm add @tanstack/angular-query-experimental
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
yarn add @tanstack/angular-query-experimental
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
bun add @tanstack/angular-query-experimental
|
||||
```
|
||||
|
||||
> Wanna give it a spin before you download? Try out the [simple](./examples/simple) or [basic](./examples/basic) examples!
|
||||
112
docs/framework/angular/overview.md
Normal file
112
docs/framework/angular/overview.md
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
id: overview
|
||||
title: Overview
|
||||
---
|
||||
|
||||
> IMPORTANT: This library is currently in an experimental stage. This means that breaking changes will happen in minor AND patch releases. Upgrade carefully. If you use this in production while in experimental stage, please lock your version to a patch-level version to avoid unexpected breaking changes.
|
||||
|
||||
The `@tanstack/angular-query-experimental` package offers a 1st-class API for using TanStack Query via Angular.
|
||||
|
||||
## Feedback welcome!
|
||||
|
||||
We are in the process of getting to a stable API for TanStack Query on Angular. If you have any feedback, please contact us at the [TanStack Discord](https://tlinz.com/discord) server or [visit this discussion](https://github.com/TanStack/query/discussions/6293) on Github.
|
||||
|
||||
## Supported Angular Versions
|
||||
|
||||
TanStack Query is compatible with Angular v16 and higher.
|
||||
|
||||
TanStack Query (FKA React Query) is often described as the missing data-fetching library for web applications, but in more technical terms, it makes **fetching, caching, synchronizing and updating server state** in your web applications a breeze.
|
||||
|
||||
## Motivation
|
||||
|
||||
Most core web frameworks **do not** come with an opinionated way of fetching or updating data in a holistic way. Because of this developers end up building either meta-frameworks which encapsulate strict opinions about data-fetching, or they invent their own ways of fetching data. This usually means cobbling together component-based state and side-effects, or using more general purpose state management libraries to store and provide asynchronous data throughout their apps.
|
||||
|
||||
While most traditional state management libraries are great for working with client state, they are **not so great at working with async or server state**. This is because **server state is totally different**. For starters, server state:
|
||||
|
||||
- Is persisted remotely in a location you may not control or own
|
||||
- Requires asynchronous APIs for fetching and updating
|
||||
- Implies shared ownership and can be changed by other people without your knowledge
|
||||
- Can potentially become "out of date" in your applications if you're not careful
|
||||
|
||||
Once you grasp the nature of server state in your application, **even more challenges will arise** as you go, for example:
|
||||
|
||||
- Caching... (possibly the hardest thing to do in programming)
|
||||
- Deduping multiple requests for the same data into a single request
|
||||
- Updating "out of date" data in the background
|
||||
- Knowing when data is "out of date"
|
||||
- Reflecting updates to data as quickly as possible
|
||||
- Performance optimizations like pagination and lazy loading data
|
||||
- Managing memory and garbage collection of server state
|
||||
- Memoizing query results with structural sharing
|
||||
|
||||
If you're not overwhelmed by that list, then that must mean that you've probably solved all of your server state problems already and deserve an award. However, if you are like a vast majority of people, you either have yet to tackle all or most of these challenges and we're only scratching the surface!
|
||||
|
||||
TanStack Query is hands down one of the _best_ libraries for managing server state. It works amazingly well **out-of-the-box, with zero-config, and can be customized** to your liking as your application grows.
|
||||
|
||||
TanStack Query allows you to defeat and overcome the tricky challenges and hurdles of _server state_ and control your app data before it starts to control you.
|
||||
|
||||
On a more technical note, TanStack Query will likely:
|
||||
|
||||
- Help you remove **many** lines of complicated and misunderstood code from your application and replace with just a handful of lines of Angular Query logic.
|
||||
- Make your application more maintainable and easier to build new features without worrying about wiring up new server state data sources
|
||||
- Have a direct impact on your end-users by making your application feel faster and more responsive than ever before.
|
||||
- Potentially help you save on bandwidth and increase memory performance
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
## Enough talk, show me some code already!
|
||||
|
||||
In the example below, you can see TanStack Query in its most basic and simple form being used to fetch the GitHub stats for the TanStack Query GitHub project itself:
|
||||
|
||||
[Open in StackBlitz](https://stackblitz.com/github/TanStack/query/tree/main/examples/angular/simple)
|
||||
|
||||
```angular-ts
|
||||
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { CommonModule } from '@angular/common'
|
||||
import { injectQuery } from '@tanstack/angular-query-experimental'
|
||||
import { lastValueFrom } from 'rxjs'
|
||||
|
||||
@Component({
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
selector: 'simple-example',
|
||||
template: `
|
||||
@if (repoDataQuery.isPending()) {
|
||||
Loading...
|
||||
}
|
||||
@if (repoDataQuery.error()) {
|
||||
An error has occurred: {{ repoDataQuery.error().message }}
|
||||
}
|
||||
@if (repoDataQuery.data(); as data) {
|
||||
<h1>{{ data.name }}</h1>
|
||||
<p>{{ data.description }}</p>
|
||||
<strong>👀 {{ data.subscribers_count }}</strong>
|
||||
<strong>✨ {{ data.stargazers_count }}</strong>
|
||||
<strong>🍴 {{ data.forks_count }}</strong>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class SimpleExampleComponent {
|
||||
readonly http = inject(HttpClient)
|
||||
|
||||
readonly repoDataQuery = injectQuery(() => ({
|
||||
queryKey: ['repoData'],
|
||||
queryFn: () =>
|
||||
lastValueFrom(
|
||||
this.http.get<Response>('https://api.github.com/repos/tanstack/query'),
|
||||
),
|
||||
}))
|
||||
}
|
||||
|
||||
interface Response {
|
||||
name: string
|
||||
description: string
|
||||
subscribers_count: number
|
||||
stargazers_count: number
|
||||
forks_count: number
|
||||
}
|
||||
```
|
||||
|
||||
## You talked me into it, so what now?
|
||||
|
||||
- Learn TanStack Query at your own pace with our amazingly thorough [Walkthrough Guide](./installation.md) and [API Reference](./reference/functions/injectQuery.md)
|
||||
117
docs/framework/angular/quick-start.md
Normal file
117
docs/framework/angular/quick-start.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
id: quick-start
|
||||
title: Quick Start
|
||||
---
|
||||
|
||||
> IMPORTANT: This library is currently in an experimental stage. This means that breaking changes will happen in minor AND patch releases. Upgrade carefully. If you use this in production while in experimental stage, please lock your version to a patch-level version to avoid unexpected breaking changes.
|
||||
|
||||
[//]: # 'Example'
|
||||
|
||||
If you're looking for a fully functioning example, please have a look at our [basic codesandbox example](./examples/basic)
|
||||
|
||||
### Provide the client to your App
|
||||
|
||||
```ts
|
||||
import { provideHttpClient } from '@angular/common/http'
|
||||
import {
|
||||
provideTanStackQuery,
|
||||
QueryClient,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
bootstrapApplication(AppComponent, {
|
||||
providers: [provideHttpClient(), provideTanStackQuery(new QueryClient())],
|
||||
})
|
||||
```
|
||||
|
||||
or in a NgModule-based app
|
||||
|
||||
```ts
|
||||
import { provideHttpClient } from '@angular/common/http'
|
||||
import {
|
||||
provideTanStackQuery,
|
||||
QueryClient,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
@NgModule({
|
||||
declarations: [AppComponent],
|
||||
imports: [BrowserModule],
|
||||
providers: [provideTanStackQuery(new QueryClient())],
|
||||
bootstrap: [AppComponent],
|
||||
})
|
||||
export class AppModule {}
|
||||
```
|
||||
|
||||
### Component with query and mutation
|
||||
|
||||
```angular-ts
|
||||
import { Component, Injectable, inject } from '@angular/core'
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { lastValueFrom } from 'rxjs'
|
||||
|
||||
import {
|
||||
injectMutation,
|
||||
injectQuery,
|
||||
QueryClient,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
@Component({
|
||||
template: `
|
||||
<div>
|
||||
<button (click)="onAddTodo()">Add Todo</button>
|
||||
|
||||
<ul>
|
||||
@for (todo of todosQuery.data(); track todo.title) {
|
||||
<li>{{ todo.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
`,
|
||||
})
|
||||
export class TodosComponent {
|
||||
readonly todoService = inject(TodoService)
|
||||
readonly queryClient = inject(QueryClient)
|
||||
|
||||
readonly todosQuery = injectQuery(() => ({
|
||||
queryKey: ['todos'],
|
||||
queryFn: () => this.todoService.getTodos(),
|
||||
}))
|
||||
|
||||
readonly addTodoMutation = injectMutation(() => ({
|
||||
mutationFn: (todo: Todo) => this.todoService.addTodo(todo),
|
||||
onSuccess: () => {
|
||||
this.queryClient.invalidateQueries({ queryKey: ['todos'] })
|
||||
},
|
||||
}))
|
||||
|
||||
onAddTodo() {
|
||||
this.addTodoMutation.mutate({
|
||||
id: Date.now().toString(),
|
||||
title: 'Do Laundry',
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class TodoService {
|
||||
private readonly http = inject(HttpClient)
|
||||
|
||||
getTodos(): Promise<Todo[]> {
|
||||
return lastValueFrom(
|
||||
this.http.get<Todo[]>('https://jsonplaceholder.typicode.com/todos'),
|
||||
)
|
||||
}
|
||||
|
||||
addTodo(todo: Todo): Promise<Todo> {
|
||||
return lastValueFrom(
|
||||
this.http.post<Todo>('https://jsonplaceholder.typicode.com/todos', todo),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
interface Todo {
|
||||
id: string
|
||||
title: string
|
||||
}
|
||||
```
|
||||
|
||||
[//]: # 'Example'
|
||||
273
docs/framework/angular/reference/classes/CancelledError.md
Normal file
273
docs/framework/angular/reference/classes/CancelledError.md
Normal file
@@ -0,0 +1,273 @@
|
||||
---
|
||||
id: CancelledError
|
||||
title: CancelledError
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/retryer.ts:77](https://github.com/TanStack/query/blob/main/packages/query-core/src/retryer.ts#L77)
|
||||
|
||||
The error thrown by a `Retryer` (and surfaced to `query.promise`/`mutation`) when a fetch is cancelled, e.g. via
|
||||
`query.cancel()`. `revert`, if `true`, tells the caller to restore the state the query was in before the fetch
|
||||
started instead of surfacing the error. `silent`, if `true`, tells the caller to suppress this error and instead
|
||||
resolve with the promise of the fetch that triggered the cancellation.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
query.cancel()
|
||||
|
||||
try {
|
||||
await query.promise
|
||||
} catch (error) {
|
||||
if (error instanceof CancelledError) {
|
||||
// the fetch was cancelled, e.g. via `query.cancel()`
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Error`
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new CancelledError(options?): CancelledError;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/retryer.ts:80](https://github.com/TanStack/query/blob/main/packages/query-core/src/retryer.ts#L80)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`CancelOptions`](../interfaces/CancelOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`CancelledError`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Error.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### cause?
|
||||
|
||||
```ts
|
||||
optional cause: unknown;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.cause
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### message
|
||||
|
||||
```ts
|
||||
message: string;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.message
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### name
|
||||
|
||||
```ts
|
||||
name: string;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.name
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### revert?
|
||||
|
||||
```ts
|
||||
optional revert: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/retryer.ts:78](https://github.com/TanStack/query/blob/main/packages/query-core/src/retryer.ts#L78)
|
||||
|
||||
***
|
||||
|
||||
### silent?
|
||||
|
||||
```ts
|
||||
optional silent: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/retryer.ts:79](https://github.com/TanStack/query/blob/main/packages/query-core/src/retryer.ts#L79)
|
||||
|
||||
***
|
||||
|
||||
### stack?
|
||||
|
||||
```ts
|
||||
optional stack: string;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.stack
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### stackTraceLimit
|
||||
|
||||
```ts
|
||||
static stackTraceLimit: number;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/@types+node@22.19.15/node\_modules/@types/node/globals.d.ts:68
|
||||
|
||||
The `Error.stackTraceLimit` property specifies the number of stack frames
|
||||
collected by a stack trace (whether generated by `new Error().stack` or
|
||||
`Error.captureStackTrace(obj)`).
|
||||
|
||||
The default value is `10` but may be set to any valid JavaScript number. Changes
|
||||
will affect any stack trace captured _after_ the value has been changed.
|
||||
|
||||
If set to a non-number value, or set to a negative number, stack traces will
|
||||
not capture any frames.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.stackTraceLimit
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### captureStackTrace()
|
||||
|
||||
```ts
|
||||
static captureStackTrace(targetObject, constructorOpt?): void;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/@types+node@22.19.15/node\_modules/@types/node/globals.d.ts:52
|
||||
|
||||
Creates a `.stack` property on `targetObject`, which when accessed returns
|
||||
a string representing the location in the code at which
|
||||
`Error.captureStackTrace()` was called.
|
||||
|
||||
```js
|
||||
const myObject = {};
|
||||
Error.captureStackTrace(myObject);
|
||||
myObject.stack; // Similar to `new Error().stack`
|
||||
```
|
||||
|
||||
The first line of the trace will be prefixed with
|
||||
`${myObject.name}: ${myObject.message}`.
|
||||
|
||||
The optional `constructorOpt` argument accepts a function. If given, all frames
|
||||
above `constructorOpt`, including `constructorOpt`, will be omitted from the
|
||||
generated stack trace.
|
||||
|
||||
The `constructorOpt` argument is useful for hiding implementation
|
||||
details of error generation from the user. For instance:
|
||||
|
||||
```js
|
||||
function a() {
|
||||
b();
|
||||
}
|
||||
|
||||
function b() {
|
||||
c();
|
||||
}
|
||||
|
||||
function c() {
|
||||
// Create an error without stack trace to avoid calculating the stack trace twice.
|
||||
const { stackTraceLimit } = Error;
|
||||
Error.stackTraceLimit = 0;
|
||||
const error = new Error();
|
||||
Error.stackTraceLimit = stackTraceLimit;
|
||||
|
||||
// Capture the stack trace above function b
|
||||
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
|
||||
throw error;
|
||||
}
|
||||
|
||||
a();
|
||||
```
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### targetObject
|
||||
|
||||
`object`
|
||||
|
||||
##### constructorOpt?
|
||||
|
||||
`Function`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.captureStackTrace
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### prepareStackTrace()
|
||||
|
||||
```ts
|
||||
static prepareStackTrace(err, stackTraces): any;
|
||||
```
|
||||
|
||||
Defined in: node\_modules/.pnpm/@types+node@22.19.15/node\_modules/@types/node/globals.d.ts:56
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### err
|
||||
|
||||
`Error`
|
||||
|
||||
##### stackTraces
|
||||
|
||||
`CallSite`[]
|
||||
|
||||
#### Returns
|
||||
|
||||
`any`
|
||||
|
||||
#### See
|
||||
|
||||
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Error.prepareStackTrace
|
||||
```
|
||||
@@ -0,0 +1,665 @@
|
||||
---
|
||||
id: InfiniteQueryObserver
|
||||
title: InfiniteQueryObserver
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:41](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L41)
|
||||
|
||||
An `InfiniteQueryObserver` extends `QueryObserver` to observe and switch
|
||||
between infinite queries. It augments the base `QueryObserverResult` with
|
||||
infinite-query-specific fields and methods, such as `hasNextPage` and
|
||||
`fetchNextPage`, and is the primitive that framework adapters (e.g.
|
||||
`useInfiniteQuery`) build their hooks on top of.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const observer = new InfiniteQueryObserver(queryClient, {
|
||||
queryKey: ['projects'],
|
||||
queryFn: ({ pageParam }) => fetchProjects(pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
||||
})
|
||||
|
||||
const unsubscribe = observer.subscribe((result) => console.log(result))
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- [`QueryObserver`](QueryObserver.md)\<`TQueryFnData`, `TError`, `TData`, [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `TPageParam`\>, `TQueryKey`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`\>
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new InfiniteQueryObserver<TQueryFnData, TError, TData, TQueryKey, TPageParam>(client, options): InfiniteQueryObserver<TQueryFnData, TError, TData, TQueryKey, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:83](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L83)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### client
|
||||
|
||||
[`QueryClient`](QueryClient.md)
|
||||
|
||||
##### options
|
||||
|
||||
[`InfiniteQueryObserverOptions`](../interfaces/InfiniteQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`InfiniteQueryObserver`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`constructor`](QueryObserver.md#constructor)
|
||||
|
||||
## Properties
|
||||
|
||||
### fetch
|
||||
|
||||
```ts
|
||||
protected fetch: ReplaceReturnType<(fetchOptions) => Promise<QueryObserverResult<TData, TError>>, Promise<InfiniteQueryObserverResult<TData, TError>>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:72](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L72)
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
QueryObserver.fetch
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getCurrentResult
|
||||
|
||||
```ts
|
||||
getCurrentResult: ReplaceReturnType<() => QueryObserverResult<TData, TError>, InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:60](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L60)
|
||||
|
||||
Returns the most recently computed `QueryObserverResult` for the
|
||||
observed query. This is a point-in-time read; to be notified of updates
|
||||
as they happen, subscribe to the observer instead (its inherited
|
||||
`subscribe` method).
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = observer.getCurrentResult()
|
||||
console.log(result.status, result.data)
|
||||
```
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
QueryObserver.getCurrentResult
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<QueryObserverListener<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`listeners`](QueryObserver.md#listeners)
|
||||
|
||||
***
|
||||
|
||||
### options
|
||||
|
||||
```ts
|
||||
options: QueryObserverOptions<TQueryFnData, TError, TData, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:89](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L89)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`options`](QueryObserver.md#options)
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe: (listener) => () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:55](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L55)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`InfiniteQueryObserverListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
QueryObserver.subscribe
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### bindMethods()
|
||||
|
||||
```ts
|
||||
protected bindMethods(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:96](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L96)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`bindMethods`](QueryObserver.md#bindmethods)
|
||||
|
||||
***
|
||||
|
||||
### createResult()
|
||||
|
||||
```ts
|
||||
protected createResult(query, options): InfiniteQueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:201](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L201)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](Query.md)\<`TQueryFnData`, `TError`, [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `TPageParam`\>, `TQueryKey`\>
|
||||
|
||||
##### options
|
||||
|
||||
[`InfiniteQueryObserverOptions`](../interfaces/InfiniteQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`createResult`](QueryObserver.md#createresult)
|
||||
|
||||
***
|
||||
|
||||
### destroy()
|
||||
|
||||
```ts
|
||||
destroy(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:161](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L161)
|
||||
|
||||
Stops observing the current query: clears all listeners, cancels the
|
||||
stale and refetch-interval timers, and removes this observer from the
|
||||
query it was observing.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`destroy`](QueryObserver.md#destroy)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage(options?): Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:161](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L161)
|
||||
|
||||
Fetches the next page of the infinite query and returns a promise that
|
||||
resolves with the resulting `InfiniteQueryObserverResult`. The page
|
||||
param used for the fetch is determined by `getNextPageParam`, which
|
||||
receives the current pages/page params and whose result also determines
|
||||
`hasNextPage`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](../interfaces/FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const { hasNextPage } = observer.getCurrentResult()
|
||||
|
||||
if (hasNextPage) {
|
||||
await observer.fetchNextPage()
|
||||
}
|
||||
```
|
||||
|
||||
#### See
|
||||
|
||||
[InfiniteQueryObserver#fetchPreviousPage](#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchOptimistic()
|
||||
|
||||
```ts
|
||||
fetchOptimistic(options): Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:395](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L395)
|
||||
|
||||
Fetches a query defined by the given options without affecting this
|
||||
observer's own tracked query or result, and returns a promise that
|
||||
resolves with the `QueryObserverResult` for that fetch. This is useful
|
||||
for prefetching data that another observer (e.g. a query about to be
|
||||
navigated to) will need, ahead of time.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `TPageParam`\>, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = await observer.fetchOptimistic({
|
||||
queryKey: ['posts', 2],
|
||||
queryFn: () => fetchPost(2),
|
||||
})
|
||||
console.log(result.data)
|
||||
```
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`fetchOptimistic`](QueryObserver.md#fetchoptimistic)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage(options?): Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:190](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L190)
|
||||
|
||||
Fetches the previous page of the infinite query and returns a promise
|
||||
that resolves with the resulting `InfiniteQueryObserverResult`. The page
|
||||
param used for the fetch is determined by `getPreviousPageParam`, which
|
||||
receives the current pages/page params and whose result also determines
|
||||
`hasPreviousPage`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](../interfaces/FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const { hasPreviousPage } = observer.getCurrentResult()
|
||||
|
||||
if (hasPreviousPage) {
|
||||
await observer.fetchPreviousPage()
|
||||
}
|
||||
```
|
||||
|
||||
#### See
|
||||
|
||||
[InfiniteQueryObserver#fetchNextPage](#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### getCurrentQuery()
|
||||
|
||||
```ts
|
||||
getCurrentQuery(): Query<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:357](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L357)
|
||||
|
||||
Returns the `Query` instance this observer is currently observing.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`TQueryFnData`, `TError`, [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `TPageParam`\>, `TQueryKey`\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`getCurrentQuery`](QueryObserver.md#getcurrentquery)
|
||||
|
||||
***
|
||||
|
||||
### getOptimisticResult()
|
||||
|
||||
```ts
|
||||
getOptimisticResult(options): InfiniteQueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:127](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L127)
|
||||
|
||||
The infinite-query counterpart of [QueryObserver#getOptimisticResult](QueryObserver.md#getoptimisticresult), marking the
|
||||
options as an infinite query before delegating to it. Called by framework adapters (e.g.
|
||||
`useInfiniteQuery`) ahead of subscribing, to compute the current `InfiniteQueryObserverResult`
|
||||
synchronously.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`DefaultedInfiniteQueryObserverOptions`](../type-aliases/DefaultedInfiniteQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`getOptimisticResult`](QueryObserver.md#getoptimisticresult)
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`hasListeners`](QueryObserver.md#haslisteners)
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:110](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L110)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`onSubscribe`](QueryObserver.md#onsubscribe)
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:124](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L124)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`onUnsubscribe`](QueryObserver.md#onunsubscribe)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch(__namedParameters): Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:371](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L371)
|
||||
|
||||
Refetches the observed query and returns a promise that resolves with
|
||||
the resulting `QueryObserverResult`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### \_\_namedParameters
|
||||
|
||||
[`RefetchOptions`](../interfaces/RefetchOptions.md) = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = await observer.refetch({ cancelRefetch: false })
|
||||
console.log(result.data)
|
||||
```
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`refetch`](QueryObserver.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### setOptions()
|
||||
|
||||
```ts
|
||||
setOptions(options): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/infiniteQueryObserver.ts:108](https://github.com/TanStack/query/blob/main/packages/query-core/src/infiniteQueryObserver.ts#L108)
|
||||
|
||||
Updates the observer's options. Behaves the same as
|
||||
`QueryObserver.setOptions`, additionally marking the options as
|
||||
belonging to an infinite query before delegating to the base
|
||||
implementation.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`InfiniteQueryObserverOptions`](../interfaces/InfiniteQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`setOptions`](QueryObserver.md#setoptions)
|
||||
|
||||
***
|
||||
|
||||
### shouldFetchOnReconnect()
|
||||
|
||||
```ts
|
||||
shouldFetchOnReconnect(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:135](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L135)
|
||||
|
||||
Returns whether the observed query is currently stale and configured
|
||||
(via the `refetchOnReconnect` option) to refetch when the network
|
||||
reconnects.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`shouldFetchOnReconnect`](QueryObserver.md#shouldfetchonreconnect)
|
||||
|
||||
***
|
||||
|
||||
### shouldFetchOnWindowFocus()
|
||||
|
||||
```ts
|
||||
shouldFetchOnWindowFocus(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:148](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L148)
|
||||
|
||||
Returns whether the observed query is currently stale and configured
|
||||
(via the `refetchOnWindowFocus` option) to refetch when the window
|
||||
regains focus.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`shouldFetchOnWindowFocus`](QueryObserver.md#shouldfetchonwindowfocus)
|
||||
|
||||
***
|
||||
|
||||
### trackProp()
|
||||
|
||||
```ts
|
||||
trackProp(key): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:350](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L350)
|
||||
|
||||
Records that the given `QueryObserverResult` property was read, so a subsequent update only
|
||||
notifies this observer if a tracked property actually changed. Normally called indirectly via
|
||||
[QueryObserver#trackResult](QueryObserver.md#trackresult)'s proxy; exposed directly for adapters that track property
|
||||
access themselves (e.g. through their own reactivity system) instead of via the proxy.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### key
|
||||
|
||||
`"error"` | `"data"` | `"isError"` | `"isPending"` | `"isLoading"` | `"isLoadingError"` | `"isRefetchError"` | `"isSuccess"` | `"isPlaceholderData"` | `"status"` | `"dataUpdatedAt"` | `"errorUpdatedAt"` | `"failureCount"` | `"failureReason"` | `"errorUpdateCount"` | `"isFetched"` | `"isFetchedAfterMount"` | `"isFetching"` | `"isInitialLoading"` | `"isPaused"` | `"isRefetching"` | `"isStale"` | `"isEnabled"` | `"refetch"` | `"fetchStatus"`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`trackProp`](QueryObserver.md#trackprop)
|
||||
|
||||
***
|
||||
|
||||
### trackResult()
|
||||
|
||||
```ts
|
||||
trackResult(result, onPropTracked?): QueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:331](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L331)
|
||||
|
||||
Wraps a `QueryObserverResult` in a `Proxy` that records which properties are read, via
|
||||
[QueryObserver#trackProp](QueryObserver.md#trackprop) (and an optional `onPropTracked` callback). Used by framework
|
||||
adapters when `notifyOnChangeProps` is not set, to implement its default "only re-render on
|
||||
properties you actually read" behavior.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### result
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
##### onPropTracked?
|
||||
|
||||
(`key`) => `void`
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`trackResult`](QueryObserver.md#trackresult)
|
||||
|
||||
***
|
||||
|
||||
### updateResult()
|
||||
|
||||
```ts
|
||||
updateResult(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:735](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L735)
|
||||
|
||||
Recomputes and stores the current result from the current query/options, notifying listeners
|
||||
if it changed. Framework adapters call this right after subscribing to make sure no query
|
||||
update was missed in the gap between creating the observer and subscribing to it.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserver`](QueryObserver.md).[`updateResult`](QueryObserver.md#updateresult)
|
||||
330
docs/framework/angular/reference/classes/Mutation.md
Normal file
330
docs/framework/angular/reference/classes/Mutation.md
Normal file
@@ -0,0 +1,330 @@
|
||||
---
|
||||
id: Mutation
|
||||
title: Mutation
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:135](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L135)
|
||||
|
||||
Represents a single mutation attempt. A `Mutation` holds the mutation's
|
||||
options, state (data/error/status), and the `MutationObserver`s currently
|
||||
subscribed to it.
|
||||
|
||||
Instances are created and managed internally by `MutationCache`; application
|
||||
code typically interacts with mutations indirectly through `QueryClient` or
|
||||
a framework hook like `useMutation`. Direct access to a `Mutation` instance
|
||||
is possible via `mutationCache.find()`/`getAll()` for inspecting cache state.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
const mutation = mutationCache.find({ mutationKey: ['addPost'] })
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Removable`
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TVariables
|
||||
|
||||
`TVariables` = `unknown`
|
||||
|
||||
### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new Mutation<TData, TError, TVariables, TOnMutateResult>(config): Mutation<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:152](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L152)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### config
|
||||
|
||||
`MutationConfig`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Mutation`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Removable.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### gcTime
|
||||
|
||||
```ts
|
||||
gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:7](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L7)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.gcTime
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### mutationId
|
||||
|
||||
```ts
|
||||
readonly mutationId: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:143](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L143)
|
||||
|
||||
***
|
||||
|
||||
### options
|
||||
|
||||
```ts
|
||||
options: MutationOptions<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:142](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L142)
|
||||
|
||||
***
|
||||
|
||||
### state
|
||||
|
||||
```ts
|
||||
state: MutationState<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:141](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L141)
|
||||
|
||||
## Accessors
|
||||
|
||||
### meta
|
||||
|
||||
#### Get Signature
|
||||
|
||||
```ts
|
||||
get meta(): Record<string, unknown> | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:179](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L179)
|
||||
|
||||
The `meta` object passed in the mutation's options, if any.
|
||||
|
||||
##### Returns
|
||||
|
||||
`Record`\<`string`, `unknown`\> \| `undefined`
|
||||
|
||||
## Methods
|
||||
|
||||
### clearGcTimeout()
|
||||
|
||||
```ts
|
||||
protected clearGcTimeout(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:32](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L32)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.clearGcTimeout
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### continue()
|
||||
|
||||
```ts
|
||||
continue(): Promise<unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:243](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L243)
|
||||
|
||||
Resumes a mutation that is currently paused or was restored from a
|
||||
dehydrated, still-`pending` state.
|
||||
|
||||
- If this mutation has an active retryer (it paused mid-attempt, e.g. due
|
||||
to the network mode or scope-based queuing), its retryer is resumed.
|
||||
- Otherwise, if the mutation's status is still `pending` (e.g. it was
|
||||
dehydrated while an attempt was in flight and never got a retryer in
|
||||
this instance), `execute` is called again with the last known variables.
|
||||
- Otherwise the mutation has already settled and this resolves immediately
|
||||
without running anything again.
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<`unknown`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
// typically driven by reconnect handling, e.g. queryClient.resumePausedMutations()
|
||||
const mutation = mutationCache.find({ mutationKey: ['addPost'] })
|
||||
await mutation?.continue()
|
||||
```
|
||||
|
||||
#### See
|
||||
|
||||
[Mutation#execute](#execute)
|
||||
|
||||
***
|
||||
|
||||
### destroy()
|
||||
|
||||
```ts
|
||||
destroy(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:10](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L10)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.destroy
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### execute()
|
||||
|
||||
```ts
|
||||
execute(variables): Promise<TData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:284](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L284)
|
||||
|
||||
Runs the mutation function for the given variables through a retryer, and
|
||||
drives the mutation's state and lifecycle callbacks through to settlement.
|
||||
|
||||
If this mutation's state is already `pending` when `execute` is called
|
||||
(i.e. it was restored, still in-flight, from a dehydrated state), the
|
||||
`onMutate` step is skipped and a `continue` action is dispatched to
|
||||
unpause it; otherwise a `pending` action is dispatched first, then the
|
||||
mutation cache's `onMutate` and the mutation's own `onMutate` option are
|
||||
awaited in that order, and the resulting context is stored.
|
||||
|
||||
The mutation function is then run (subject to `retry`/`retryDelay`/
|
||||
`networkMode`, and to the mutation cache's scope-based serialization).
|
||||
On success, the cache's `onSuccess`/`onSettled` callbacks run before the
|
||||
mutation's own `onSuccess`/`onSettled` options, a `success` action is
|
||||
dispatched, and the resolved data is returned. On failure, the same
|
||||
cache-then-option ordering is used for `onError`/`onSettled`, but each of
|
||||
those four callbacks is individually caught so that a throwing callback
|
||||
cannot mask the original error; an `error` action is then dispatched and
|
||||
the original error is re-thrown.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<`TData`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
// Called internally by `MutationObserver.mutate` and `Mutation.continue` —
|
||||
// applications normally trigger mutations through those, not this method.
|
||||
const data = await mutation.execute(variables)
|
||||
```
|
||||
|
||||
#### See
|
||||
|
||||
[Mutation#continue](#continue)
|
||||
|
||||
***
|
||||
|
||||
### optionalRemove()
|
||||
|
||||
```ts
|
||||
protected optionalRemove(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutation.ts:212](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutation.ts#L212)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Removable.optionalRemove
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### scheduleGc()
|
||||
|
||||
```ts
|
||||
protected scheduleGc(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:14](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L14)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.scheduleGc
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### updateGcTime()
|
||||
|
||||
```ts
|
||||
protected updateGcTime(newGcTime): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:24](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L24)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### newGcTime
|
||||
|
||||
`number` | `undefined`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.updateGcTime
|
||||
```
|
||||
316
docs/framework/angular/reference/classes/MutationCache.md
Normal file
316
docs/framework/angular/reference/classes/MutationCache.md
Normal file
@@ -0,0 +1,316 @@
|
||||
---
|
||||
id: MutationCache
|
||||
title: MutationCache
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:124](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L124)
|
||||
|
||||
The `MutationCache` is the storage for mutations.
|
||||
|
||||
Normally, you will not interact with the `MutationCache` directly and instead use a
|
||||
`QueryClient`. You can subscribe to it (inherited from `Subscribable`) to be informed of
|
||||
safe/known updates to the cache, such as mutations being added, removed, or updated.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const unsubscribe = mutationCache.subscribe((event) => {
|
||||
console.log(event.type, event.mutation)
|
||||
})
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`MutationCacheListener`\>
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new MutationCache(config): MutationCache;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:129](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L129)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### config
|
||||
|
||||
[`MutationCacheConfig`](../interfaces/MutationCacheConfig.md) = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
`MutationCache`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable<MutationCacheListener>.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### config
|
||||
|
||||
```ts
|
||||
config: MutationCacheConfig = {};
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:129](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L129)
|
||||
|
||||
***
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<MutationCacheListener>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### clear()
|
||||
|
||||
```ts
|
||||
clear(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:236](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L236)
|
||||
|
||||
Removes all mutations from the cache.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
mutationCache.clear()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### find()
|
||||
|
||||
```ts
|
||||
find<TData, TError, TVariables, TOnMutateResult>(filters):
|
||||
| Mutation<TData, TError, TVariables, TOnMutateResult>
|
||||
| undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:278](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L278)
|
||||
|
||||
A slightly more advanced method that can be used to get an existing mutation instance from
|
||||
the cache. If the mutation does not exist, `undefined` is returned.
|
||||
|
||||
This is not typically needed for most applications, but can come in handy when needing more
|
||||
information about a mutation in rare scenarios.
|
||||
|
||||
#### Type Parameters
|
||||
|
||||
##### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
##### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
##### TVariables
|
||||
|
||||
`TVariables` = `any`
|
||||
|
||||
##### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### filters
|
||||
|
||||
[`MutationFilters`](../interfaces/MutationFilters.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
\| [`Mutation`](Mutation.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
\| `undefined`
|
||||
|
||||
#### See
|
||||
|
||||
[MutationCache#findAll](#findall)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
const mutation = mutationCache.find({ mutationKey: ['addPost'] })
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### findAll()
|
||||
|
||||
```ts
|
||||
findAll(filters): Mutation<unknown, Error, unknown, unknown>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L308)
|
||||
|
||||
An even more advanced method that can be used to get existing mutation instances from the
|
||||
cache that match the given filters. If no mutations match, an empty array is returned.
|
||||
|
||||
This is not typically needed for most applications, but can come in handy when needing more
|
||||
information about mutations in rare scenarios.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### filters
|
||||
|
||||
[`MutationFilters`](../interfaces/MutationFilters.md) = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Mutation`](Mutation.md)\<`unknown`, `Error`, `unknown`, `unknown`\>[]
|
||||
|
||||
#### See
|
||||
|
||||
[MutationCache#find](#find)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
const mutations = mutationCache.findAll({ mutationKey: ['addPost'] })
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getAll()
|
||||
|
||||
```ts
|
||||
getAll(): Mutation<unknown, Error, unknown, unknown>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationCache.ts:259](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationCache.ts#L259)
|
||||
|
||||
Returns all mutations within the cache.
|
||||
|
||||
This is not typically needed for most applications, but can come in handy when needing more
|
||||
information about a mutation in rare scenarios.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Mutation`](Mutation.md)\<`unknown`, `Error`, `unknown`, `unknown`\>[]
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
const mutations = mutationCache.getAll()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:23](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L23)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:27](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L27)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`MutationCacheListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
335
docs/framework/angular/reference/classes/MutationObserver.md
Normal file
335
docs/framework/angular/reference/classes/MutationObserver.md
Normal file
@@ -0,0 +1,335 @@
|
||||
---
|
||||
id: MutationObserver
|
||||
title: MutationObserver
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:38](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L38)
|
||||
|
||||
Observes a single mutation and derives a `MutationObserverResult` from it.
|
||||
A framework hook like `useMutation` creates one `MutationObserver` per hook
|
||||
call, keeps it stable across re-renders, calls `setOptions` when the options
|
||||
passed to the hook change, subscribes to it to re-render on updates, and
|
||||
reads `getCurrentResult()` for the value to return. Calling `mutate()`
|
||||
builds a new underlying `Mutation` in the `MutationCache` and executes it.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const observer = new MutationObserver(queryClient, {
|
||||
mutationFn: (variables: { title: string }) => addPost(variables),
|
||||
})
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`MutationObserverListener`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TVariables
|
||||
|
||||
`TVariables` = `void`
|
||||
|
||||
### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new MutationObserver<TData, TError, TVariables, TOnMutateResult>(client, options): MutationObserver<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:58](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L58)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### client
|
||||
|
||||
[`QueryClient`](QueryClient.md)
|
||||
|
||||
##### options
|
||||
|
||||
[`MutationObserverOptions`](../interfaces/MutationObserverOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`MutationObserver`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable<
|
||||
MutationObserverListener<TData, TError, TVariables, TOnMutateResult>
|
||||
>.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<MutationObserverListener<TData, TError, TVariables, TOnMutateResult>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### options
|
||||
|
||||
```ts
|
||||
options: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:46](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L46)
|
||||
|
||||
## Methods
|
||||
|
||||
### bindMethods()
|
||||
|
||||
```ts
|
||||
protected bindMethods(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:75](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L75)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### getCurrentResult()
|
||||
|
||||
```ts
|
||||
getCurrentResult(): MutationObserverResult<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:155](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L155)
|
||||
|
||||
Returns the observer's current result, derived from the observed
|
||||
mutation's state (or the default, `idle` state if no mutation has been
|
||||
built yet, e.g. before the first `mutate()` call or after `reset()`).
|
||||
|
||||
#### Returns
|
||||
|
||||
[`MutationObserverResult`](../type-aliases/MutationObserverResult.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### mutate()
|
||||
|
||||
```ts
|
||||
mutate(variables, options?): Promise<TData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:207](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L207)
|
||||
|
||||
Builds a new `Mutation` in the `MutationCache` using the observer's
|
||||
current options, detaches this observer from any previously observed
|
||||
mutation, attaches it to the new one, and executes it with the given
|
||||
variables.
|
||||
|
||||
The optional per-call `options` (`onSuccess`/`onError`/`onSettled`) are
|
||||
invoked once the mutation settles, in addition to any callbacks defined
|
||||
on the observer's own options.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
##### options?
|
||||
|
||||
[`MutateOptions`](../interfaces/MutateOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<`TData`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
await observer.mutate(
|
||||
{ title: 'New post' },
|
||||
{ onSuccess: (data) => console.log(data) },
|
||||
)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:127](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L127)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:135](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L135)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### reset()
|
||||
|
||||
```ts
|
||||
reset(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:180](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L180)
|
||||
|
||||
Detaches the observer from the mutation it is currently observing (if
|
||||
any) and resets the observed result back to its default, `idle` state.
|
||||
|
||||
This does not cancel an in-flight mutation; the mutation itself keeps
|
||||
running to completion and its own callbacks still fire, but this
|
||||
observer stops reflecting its state and a subsequent `mutate()` call
|
||||
will build a brand new mutation.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
observer.reset()
|
||||
```
|
||||
|
||||
#### See
|
||||
|
||||
[MutationObserver#mutate](#mutate)
|
||||
|
||||
***
|
||||
|
||||
### setOptions()
|
||||
|
||||
```ts
|
||||
setOptions(options): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/mutationObserver.ts:96](https://github.com/TanStack/query/blob/main/packages/query-core/src/mutationObserver.ts#L96)
|
||||
|
||||
Updates the observer's options.
|
||||
|
||||
If the new `mutationKey` differs from the previous one (and both were
|
||||
defined), the observer is reset, detaching it from the mutation it was
|
||||
observing. Otherwise, if the currently observed mutation is still
|
||||
`pending`, its options are updated in place as well.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`MutationObserverOptions`](../interfaces/MutationObserverOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
observer.setOptions({
|
||||
mutationFn: (variables: { title: string }) => addPost(variables),
|
||||
onSuccess: (data) => console.log(data),
|
||||
})
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`MutationObserverListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
325
docs/framework/angular/reference/classes/QueriesObserver.md
Normal file
325
docs/framework/angular/reference/classes/QueriesObserver.md
Normal file
@@ -0,0 +1,325 @@
|
||||
---
|
||||
id: QueriesObserver
|
||||
title: QueriesObserver
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:56](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L56)
|
||||
|
||||
A `QueriesObserver` watches an array of queries at once, exposing them as
|
||||
a single array of `QueryObserverResult`s (or, when a `combine` option is
|
||||
given, as a combined value derived from that array). It manages one
|
||||
internal `QueryObserver` per query, and is the primitive that framework
|
||||
adapters (e.g. `useQueries`) build their hooks on top of.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const observer = new QueriesObserver(queryClient, [
|
||||
{ queryKey: ['post', 1], queryFn: fetchPost },
|
||||
{ queryKey: ['post', 2], queryFn: fetchPost },
|
||||
])
|
||||
|
||||
const unsubscribe = observer.subscribe((result) => {
|
||||
console.log(result)
|
||||
})
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`QueriesObserverListener`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TCombinedResult
|
||||
|
||||
`TCombinedResult` = [`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new QueriesObserver<TCombinedResult>(
|
||||
client,
|
||||
queries,
|
||||
options?): QueriesObserver<TCombinedResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:70](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L70)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### client
|
||||
|
||||
[`QueryClient`](QueryClient.md)
|
||||
|
||||
##### queries
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`any`, `any`, `any`, `any`, `any`, `never`\>[]
|
||||
|
||||
##### options?
|
||||
|
||||
[`QueriesObserverOptions`](../interfaces/QueriesObserverOptions.md)\<`TCombinedResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`QueriesObserver`\<`TCombinedResult`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable<QueriesObserverListener>.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<QueriesObserverListener>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### destroy()
|
||||
|
||||
```ts
|
||||
destroy(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:106](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L106)
|
||||
|
||||
Stops observing all queries: clears all listeners and destroys every
|
||||
underlying `QueryObserver` this observer manages.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### getCurrentResult()
|
||||
|
||||
```ts
|
||||
getCurrentResult(): QueryObserverResult[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:210](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L210)
|
||||
|
||||
Returns the most recently computed array of `QueryObserverResult`s, one
|
||||
per observed query, in the same order as the queries passed to the
|
||||
constructor or `setQueries`.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const results = observer.getCurrentResult()
|
||||
const data = results.map((result) => result.data)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getObservers()
|
||||
|
||||
```ts
|
||||
getObservers(): QueryObserver<unknown, Error, unknown, unknown, readonly unknown[]>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:227](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L227)
|
||||
|
||||
Returns the underlying `QueryObserver` instances this observer manages,
|
||||
in the same order as the queries passed to the constructor or
|
||||
`setQueries`.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserver`](QueryObserver.md)\<`unknown`, `Error`, `unknown`, `unknown`, readonly `unknown`[]\>[]
|
||||
|
||||
***
|
||||
|
||||
### getOptimisticResult()
|
||||
|
||||
```ts
|
||||
getOptimisticResult(queries, combine): [QueryObserverResult[], (r?) => TCombinedResult, () => QueryObserverResult[]];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:238](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L238)
|
||||
|
||||
The `QueriesObserver` counterpart of [QueryObserver#getOptimisticResult](QueryObserver.md#getoptimisticresult) — computes
|
||||
the result for the given (already-defaulted) queries right now, synchronously. Called by
|
||||
framework adapters (e.g. `useQueries`) ahead of subscribing, returning a tuple of the raw
|
||||
per-query results, a function to compute the combined result from them, and a function to
|
||||
wrap the results for property-access tracking.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### queries
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`unknown`, `Error`, `unknown`, `unknown`, readonly `unknown`[], `never`\>[]
|
||||
|
||||
##### combine
|
||||
|
||||
`CombineFn`\<`TCombinedResult`\> | `undefined`
|
||||
|
||||
#### Returns
|
||||
|
||||
\[[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[], (`r?`) => `TCombinedResult`, () => [`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]\]
|
||||
|
||||
***
|
||||
|
||||
### getQueries()
|
||||
|
||||
```ts
|
||||
getQueries(): Query<unknown, Error, unknown, readonly unknown[]>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:218](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L218)
|
||||
|
||||
Returns the underlying `Query` instances currently being observed, in
|
||||
the same order as the queries passed to the constructor or `setQueries`.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`unknown`, `Error`, `unknown`, readonly `unknown`[]\>[]
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:86](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L86)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:96](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L96)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### setQueries()
|
||||
|
||||
```ts
|
||||
setQueries(queries, options?): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queriesObserver.ts:127](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L127)
|
||||
|
||||
Replaces the set of queries being observed. Existing `QueryObserver`s
|
||||
are reused for queries that match an already-observed query hash;
|
||||
observers for queries that are no longer present are destroyed, and new
|
||||
observers are created and subscribed to for newly added queries.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### queries
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`unknown`, `Error`, `unknown`, `unknown`, readonly `unknown`[], `never`\>[]
|
||||
|
||||
##### options?
|
||||
|
||||
[`QueriesObserverOptions`](../interfaces/QueriesObserverOptions.md)\<`TCombinedResult`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
observer.setQueries([
|
||||
{ queryKey: ['post', 1], queryFn: fetchPost },
|
||||
{ queryKey: ['post', 3], queryFn: fetchPost },
|
||||
])
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`QueriesObserverListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
585
docs/framework/angular/reference/classes/Query.md
Normal file
585
docs/framework/angular/reference/classes/Query.md
Normal file
@@ -0,0 +1,585 @@
|
||||
---
|
||||
id: Query
|
||||
title: Query
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:225](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L225)
|
||||
|
||||
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.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
const query = queryCache.find({ queryKey: ['posts'] })
|
||||
|
||||
if (query) {
|
||||
console.log(query.state.dataUpdatedAt)
|
||||
}
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Removable`
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new Query<TQueryFnData, TError, TData, TQueryKey>(config): Query<TQueryFnData, TError, TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L246)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### config
|
||||
|
||||
`QueryConfig`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Query`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Removable.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### gcTime
|
||||
|
||||
```ts
|
||||
gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:7](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L7)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.gcTime
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### observers
|
||||
|
||||
```ts
|
||||
observers: QueryObserver<any, any, any, any, any>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:242](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L242)
|
||||
|
||||
***
|
||||
|
||||
### options
|
||||
|
||||
```ts
|
||||
options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:233](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L233)
|
||||
|
||||
***
|
||||
|
||||
### queryHash
|
||||
|
||||
```ts
|
||||
queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:232](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L232)
|
||||
|
||||
***
|
||||
|
||||
### queryKey
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:231](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L231)
|
||||
|
||||
***
|
||||
|
||||
### state
|
||||
|
||||
```ts
|
||||
state: QueryState<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:234](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L234)
|
||||
|
||||
## Accessors
|
||||
|
||||
### meta
|
||||
|
||||
#### Get Signature
|
||||
|
||||
```ts
|
||||
get meta(): Record<string, unknown> | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:264](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L264)
|
||||
|
||||
The `meta` object passed in the query's options, if any.
|
||||
|
||||
##### Returns
|
||||
|
||||
`Record`\<`string`, `unknown`\> \| `undefined`
|
||||
|
||||
***
|
||||
|
||||
### promise
|
||||
|
||||
#### Get Signature
|
||||
|
||||
```ts
|
||||
get promise(): Promise<TData> | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L277)
|
||||
|
||||
The promise for the currently in-flight fetch, if the query is fetching.
|
||||
`undefined` when the query is not fetching.
|
||||
|
||||
##### Returns
|
||||
|
||||
`Promise`\<`TData`\> \| `undefined`
|
||||
|
||||
## Methods
|
||||
|
||||
### cancel()
|
||||
|
||||
```ts
|
||||
cancel(options?): Promise<void>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:348](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L348)
|
||||
|
||||
Cancels the query's currently in-flight fetch, if any.
|
||||
- Returns a promise that resolves once the cancellation has settled.
|
||||
- If no fetch is in progress, resolves immediately.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`CancelOptions`](../interfaces/CancelOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<`void`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
await query.cancel()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### clearGcTimeout()
|
||||
|
||||
```ts
|
||||
protected clearGcTimeout(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:32](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L32)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.clearGcTimeout
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### destroy()
|
||||
|
||||
```ts
|
||||
destroy(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:361](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L361)
|
||||
|
||||
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.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### See
|
||||
|
||||
[Query#cancel](#cancel)
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Removable.destroy
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### fetch()
|
||||
|
||||
```ts
|
||||
fetch(options?, fetchOptions?): Promise<TData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:590](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L590)
|
||||
|
||||
Fetches the query, i.e. runs its `queryFn` (through any configured
|
||||
retryer/behavior) and updates the query's state with the result.
|
||||
- If a fetch is already in flight, returns its promise instead of
|
||||
starting a new one, unless `fetchOptions.cancelRefetch` is set and the
|
||||
query already has data, in which case the current fetch is silently
|
||||
cancelled first.
|
||||
- If `options` is passed, it replaces the query's current options
|
||||
before fetching.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`QueryOptions`](../interfaces/QueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `never`\>
|
||||
|
||||
##### fetchOptions?
|
||||
|
||||
`FetchOptions`\<`TQueryFnData`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<`TData`\>
|
||||
|
||||
***
|
||||
|
||||
### getObserversCount()
|
||||
|
||||
```ts
|
||||
getObserversCount(): number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:560](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L560)
|
||||
|
||||
Returns the number of observers currently subscribed to this query.
|
||||
|
||||
#### Returns
|
||||
|
||||
`number`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
if (query.getObserversCount() === 0) {
|
||||
// no component is currently watching this query
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### invalidate()
|
||||
|
||||
```ts
|
||||
invalidate(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:574](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L574)
|
||||
|
||||
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.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
query.invalidate()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### isActive()
|
||||
|
||||
```ts
|
||||
isActive(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:386](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L386)
|
||||
|
||||
Returns `true` if the query has at least one observer for which `enabled`
|
||||
does not resolve to `false`.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### isDisabled()
|
||||
|
||||
```ts
|
||||
isDisabled(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:400](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L400)
|
||||
|
||||
Returns `true` if the query is disabled, meaning it will not fetch
|
||||
automatically.
|
||||
- If the query has observers, it is disabled when none of them are active
|
||||
(see `isActive`).
|
||||
- If the query has no observers, it is disabled when its `queryFn` is
|
||||
`skipToken` or it has never been fetched.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### isFetched()
|
||||
|
||||
```ts
|
||||
isFetched(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:412](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L412)
|
||||
|
||||
Returns `true` if the query has been fetched, i.e. it has resolved with
|
||||
either data or an error at least once.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### isStale()
|
||||
|
||||
```ts
|
||||
isStale(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:447](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L447)
|
||||
|
||||
Returns `true` if the query is stale.
|
||||
- If the query has observers, defers to whether any observer's current
|
||||
result reports `isStale` (which accounts for each observer's own
|
||||
`staleTime` and `enabled` state).
|
||||
- If the query has no observers, it is considered stale when it has no
|
||||
data or has been invalidated.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### See
|
||||
|
||||
[Query#isStaleByTime](#isstalebytime)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
if (query.isStale()) {
|
||||
// refetch or otherwise treat the cached data as outdated
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### isStaleByTime()
|
||||
|
||||
```ts
|
||||
isStaleByTime(staleTime): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:473](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L473)
|
||||
|
||||
Returns `true` if the query's data is stale relative to the given
|
||||
`staleTime` (defaults to `0`).
|
||||
- A query with no data is always stale.
|
||||
- `staleTime: 'static'` is never stale.
|
||||
- An invalidated query is always stale.
|
||||
- Otherwise, staleness is based on elapsed time since `dataUpdatedAt`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### staleTime
|
||||
|
||||
[`StaleTime`](../type-aliases/StaleTime.md) = `0`
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### See
|
||||
|
||||
[Query#isStale](#isstale)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const isStale = query.isStaleByTime(1000 * 60)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### isStatic()
|
||||
|
||||
```ts
|
||||
isStatic(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:420](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L420)
|
||||
|
||||
Returns `true` if the query has at least one observer configured with
|
||||
`staleTime: 'static'`, meaning it is treated as never stale.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### optionalRemove()
|
||||
|
||||
```ts
|
||||
protected optionalRemove(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:305](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L305)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Removable.optionalRemove
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### reset()
|
||||
|
||||
```ts
|
||||
reset(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:377](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L377)
|
||||
|
||||
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.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### scheduleGc()
|
||||
|
||||
```ts
|
||||
protected scheduleGc(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:14](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L14)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.scheduleGc
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### setState()
|
||||
|
||||
```ts
|
||||
setState(state): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/query.ts:334](https://github.com/TanStack/query/blob/main/packages/query-core/src/query.ts#L334)
|
||||
|
||||
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.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### state
|
||||
|
||||
`Partial`\<[`QueryState`](../interfaces/QueryState.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### updateGcTime()
|
||||
|
||||
```ts
|
||||
protected updateGcTime(newGcTime): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/removable.ts:24](https://github.com/TanStack/query/blob/main/packages/query-core/src/removable.ts#L24)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### newGcTime
|
||||
|
||||
`number` | `undefined`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Removable.updateGcTime
|
||||
```
|
||||
471
docs/framework/angular/reference/classes/QueryCache.md
Normal file
471
docs/framework/angular/reference/classes/QueryCache.md
Normal file
@@ -0,0 +1,471 @@
|
||||
---
|
||||
id: QueryCache
|
||||
title: QueryCache
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:123](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L123)
|
||||
|
||||
The `QueryCache` is the storage mechanism for TanStack Query. It stores all the data, meta
|
||||
information, and state of the queries it contains.
|
||||
|
||||
Normally, you will not interact with the `QueryCache` directly and instead use a `QueryClient`
|
||||
for a specific cache. You can subscribe to it (inherited from `Subscribable`) to be informed of
|
||||
safe/known updates to the cache, such as queries being added, removed, or updated — updates made
|
||||
outside of the cache's own tracked mechanisms (e.g. mutating a query's state object directly) do
|
||||
not notify subscribers.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const unsubscribe = queryCache.subscribe((event) => {
|
||||
console.log(event.type, event.query)
|
||||
})
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`QueryCacheListener`\>
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new QueryCache(config): QueryCache;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:126](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L126)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### config
|
||||
|
||||
[`QueryCacheConfig`](../interfaces/QueryCacheConfig.md) = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
`QueryCache`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable<QueryCacheListener>.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### config
|
||||
|
||||
```ts
|
||||
config: QueryCacheConfig = {};
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:126](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L126)
|
||||
|
||||
***
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<QueryCacheListener>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### build()
|
||||
|
||||
```ts
|
||||
build<TQueryFnData, TError, TData, TQueryKey>(
|
||||
client,
|
||||
options,
|
||||
state?): Query<TQueryFnData, TError, TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:147](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L147)
|
||||
|
||||
Returns the existing `Query` instance for the given options' `queryKey`/`queryHash`, or
|
||||
builds and adds a new one to the cache if none exists yet. Used by framework adapters and
|
||||
plugins (e.g. broadcast/persistence) that need to get-or-create a `Query` directly, bypassing
|
||||
the reactive `QueryObserver` machinery.
|
||||
|
||||
#### Type Parameters
|
||||
|
||||
##### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
##### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
##### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
##### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### client
|
||||
|
||||
[`QueryClient`](QueryClient.md)
|
||||
|
||||
##### options
|
||||
|
||||
[`WithRequired`](../type-aliases/WithRequired.md)\<[`QueryOptions`](../interfaces/QueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `never`\>, `"queryKey"`\>
|
||||
|
||||
##### state?
|
||||
|
||||
[`QueryState`](../interfaces/QueryState.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
const query = queryCache.build(queryClient, {
|
||||
queryKey: ['posts'],
|
||||
queryFn: fetchPosts,
|
||||
})
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### clear()
|
||||
|
||||
```ts
|
||||
clear(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:232](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L232)
|
||||
|
||||
Removes all queries from the cache.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
queryCache.clear()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### find()
|
||||
|
||||
```ts
|
||||
find<TQueryFnData, TError, TData>(filters):
|
||||
| Query<TQueryFnData, TError, TData, readonly unknown[]>
|
||||
| undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:299](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L299)
|
||||
|
||||
A slightly more advanced method that can be used to get an existing query instance from the
|
||||
cache. This instance not only contains all the state for the query, but all of the instances,
|
||||
and underlying guts of the query as well. If the query does not exist, `undefined` is
|
||||
returned.
|
||||
|
||||
This is not typically needed for most applications, but can come in handy when needing more
|
||||
information about a query in rare scenarios (e.g. looking at `query.state.dataUpdatedAt` to
|
||||
decide whether a query is fresh enough to be used as an initial value).
|
||||
|
||||
#### Type Parameters
|
||||
|
||||
##### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
##### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
##### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### filters
|
||||
|
||||
[`WithRequired`](../type-aliases/WithRequired.md)\<[`QueryFilters`](../interfaces/QueryFilters.md)\<readonly `unknown`[]\>, `"queryKey"`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
\| [`Query`](Query.md)\<`TQueryFnData`, `TError`, `TData`, readonly `unknown`[]\>
|
||||
\| `undefined`
|
||||
|
||||
#### See
|
||||
|
||||
[QueryCache#findAll](#findall)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
const query = queryCache.find({ queryKey: ['posts'] })
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### findAll()
|
||||
|
||||
```ts
|
||||
findAll(filters): Query<unknown, Error, unknown, readonly unknown[]>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:324](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L324)
|
||||
|
||||
An even more advanced method that can be used to get existing query instances from the cache
|
||||
that partially match a query key. If no queries match, an empty array is returned.
|
||||
|
||||
This is not typically needed for most applications, but can come in handy when needing more
|
||||
information about queries in rare scenarios.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### filters
|
||||
|
||||
[`QueryFilters`](../interfaces/QueryFilters.md)\<`any`\> = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`unknown`, `Error`, `unknown`, readonly `unknown`[]\>[]
|
||||
|
||||
#### See
|
||||
|
||||
[QueryCache#find](#find)
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
const queries = queryCache.findAll({ queryKey: ['posts'] })
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### get()
|
||||
|
||||
```ts
|
||||
get<TQueryFnData, TError, TData, TQueryKey>(queryHash):
|
||||
| Query<TQueryFnData, TError, TData, TQueryKey>
|
||||
| undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:254](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L254)
|
||||
|
||||
Returns the `Query` instance stored under the given `queryHash`, or `undefined` if none
|
||||
exists. Unlike [QueryCache#find](#find), this looks up by the already-computed hash rather
|
||||
than by `QueryFilters`. Used by plugins (e.g. broadcast/hydration) that already have a hash
|
||||
to look up directly.
|
||||
|
||||
#### Type Parameters
|
||||
|
||||
##### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
##### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
##### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
##### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### queryHash
|
||||
|
||||
`string`
|
||||
|
||||
#### Returns
|
||||
|
||||
\| [`Query`](Query.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
\| `undefined`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
const queryHash = hashKey(['posts'])
|
||||
|
||||
const query = queryCache.get(queryHash)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getAll()
|
||||
|
||||
```ts
|
||||
getAll(): Query<unknown, Error, unknown, readonly unknown[]>[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L277)
|
||||
|
||||
Returns all queries within the cache.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`unknown`, `Error`, `unknown`, readonly `unknown`[]\>[]
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
const queries = queryCache.getAll()
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:23](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L23)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:27](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L27)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### remove()
|
||||
|
||||
```ts
|
||||
remove(query): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryCache.ts:208](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryCache.ts#L208)
|
||||
|
||||
Destroys the given `Query` and removes it from the cache, notifying subscribers with a
|
||||
`'removed'` event. A no-op if the query is no longer the one currently stored under its hash
|
||||
(e.g. it was already replaced). Used by plugins (e.g. the broadcast client) that mirror
|
||||
removals across `QueryCache` instances.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](Query.md)\<`any`, `any`, `any`, `any`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
const query = queryCache.find({ queryKey: ['posts'] })
|
||||
|
||||
if (query) {
|
||||
queryCache.remove(query)
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`QueryCacheListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
1466
docs/framework/angular/reference/classes/QueryClient.md
Normal file
1466
docs/framework/angular/reference/classes/QueryClient.md
Normal file
File diff suppressed because it is too large
Load Diff
555
docs/framework/angular/reference/classes/QueryObserver.md
Normal file
555
docs/framework/angular/reference/classes/QueryObserver.md
Normal file
@@ -0,0 +1,555 @@
|
||||
---
|
||||
id: QueryObserver
|
||||
title: QueryObserver
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:57](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L57)
|
||||
|
||||
A `QueryObserver` watches a single query in the `QueryCache` and computes a
|
||||
`QueryObserverResult` from its state, recomputing and notifying subscribers
|
||||
whenever the underlying query (or the observer's options) changes. It is
|
||||
the primitive that framework adapters (e.g. `useQuery`) build their hooks
|
||||
on top of, but it can also be used directly to observe and switch between
|
||||
queries outside of any framework.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const observer = new QueryObserver(queryClient, {
|
||||
queryKey: ['posts'],
|
||||
queryFn: fetchPosts,
|
||||
})
|
||||
|
||||
const unsubscribe = observer.subscribe((result) => {
|
||||
console.log(result.data)
|
||||
})
|
||||
```
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`QueryObserverListener`\<`TData`, `TError`\>\>
|
||||
|
||||
## Extended by
|
||||
|
||||
- [`InfiniteQueryObserver`](InfiniteQueryObserver.md)
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
### TQueryData
|
||||
|
||||
`TQueryData` = `TQueryFnData`
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
## Constructors
|
||||
|
||||
### Constructor
|
||||
|
||||
```ts
|
||||
new QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>(client, options): QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:87](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L87)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### client
|
||||
|
||||
[`QueryClient`](QueryClient.md)
|
||||
|
||||
##### options
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`QueryObserver`\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable<QueryObserverListener<TData, TError>>.constructor
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<QueryObserverListener<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### options
|
||||
|
||||
```ts
|
||||
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:89](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L89)
|
||||
|
||||
## Methods
|
||||
|
||||
### bindMethods()
|
||||
|
||||
```ts
|
||||
protected bindMethods(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:106](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L106)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### createResult()
|
||||
|
||||
```ts
|
||||
protected createResult(query, options): QueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:559](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L559)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](Query.md)\<`TQueryFnData`, `TError`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
##### options
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
***
|
||||
|
||||
### destroy()
|
||||
|
||||
```ts
|
||||
destroy(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:161](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L161)
|
||||
|
||||
Stops observing the current query: clears all listeners, cancels the
|
||||
stale and refetch-interval timers, and removes this observer from the
|
||||
query it was observing.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### fetch()
|
||||
|
||||
```ts
|
||||
protected fetch(fetchOptions): Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:448](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L448)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### fetchOptions
|
||||
|
||||
`ObserverFetchOptions`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
***
|
||||
|
||||
### fetchOptimistic()
|
||||
|
||||
```ts
|
||||
fetchOptimistic(options): Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:395](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L395)
|
||||
|
||||
Fetches a query defined by the given options without affecting this
|
||||
observer's own tracked query or result, and returns a promise that
|
||||
resolves with the `QueryObserverResult` for that fetch. This is useful
|
||||
for prefetching data that another observer (e.g. a query about to be
|
||||
navigated to) will need, ahead of time.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = await observer.fetchOptimistic({
|
||||
queryKey: ['posts', 2],
|
||||
queryFn: () => fetchPost(2),
|
||||
})
|
||||
console.log(result.data)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getCurrentQuery()
|
||||
|
||||
```ts
|
||||
getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:357](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L357)
|
||||
|
||||
Returns the `Query` instance this observer is currently observing.
|
||||
|
||||
#### Returns
|
||||
|
||||
[`Query`](Query.md)\<`TQueryFnData`, `TError`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
***
|
||||
|
||||
### getCurrentResult()
|
||||
|
||||
```ts
|
||||
getCurrentResult(): QueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L321)
|
||||
|
||||
Returns the most recently computed `QueryObserverResult` for the
|
||||
observed query. This is a point-in-time read; to be notified of updates
|
||||
as they happen, subscribe to the observer instead (its inherited
|
||||
`subscribe` method).
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = observer.getCurrentResult()
|
||||
console.log(result.status, result.data)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getOptimisticResult()
|
||||
|
||||
```ts
|
||||
getOptimisticResult(options): QueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:272](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L272)
|
||||
|
||||
Computes the result the observer would produce for the given (already-defaulted) options
|
||||
right now, building the underlying `Query` if it doesn't exist yet, without waiting for a
|
||||
subscription callback. Called by framework adapters on every render (e.g. `useQuery`) so the
|
||||
returned value is available synchronously, ahead of `setOptions` triggering an actual fetch.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`DefaultedQueryObserverOptions`](../type-aliases/DefaultedQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
***
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:110](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L110)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:124](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L124)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch(__namedParameters): Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:371](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L371)
|
||||
|
||||
Refetches the observed query and returns a promise that resolves with
|
||||
the resulting `QueryObserverResult`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### \_\_namedParameters
|
||||
|
||||
[`RefetchOptions`](../interfaces/RefetchOptions.md) = `{}`
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
const result = await observer.refetch({ cancelRefetch: false })
|
||||
console.log(result.data)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### setOptions()
|
||||
|
||||
```ts
|
||||
setOptions(options): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:182](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L182)
|
||||
|
||||
Updates the observer's options. This will re-resolve the query being
|
||||
observed (switching to a different query if the `queryKey` changed),
|
||||
trigger a fetch if the new options require one and the observer has
|
||||
subscribers, recompute the current result, and reschedule the stale and
|
||||
refetch-interval timers as needed.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options
|
||||
|
||||
[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
observer.setOptions({ queryKey: ['posts', 1], queryFn: () => fetchPost(1) })
|
||||
// later: switch to a different query, reusing the same observer
|
||||
observer.setOptions({ queryKey: ['posts', 2], queryFn: () => fetchPost(2) })
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### shouldFetchOnReconnect()
|
||||
|
||||
```ts
|
||||
shouldFetchOnReconnect(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:135](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L135)
|
||||
|
||||
Returns whether the observed query is currently stale and configured
|
||||
(via the `refetchOnReconnect` option) to refetch when the network
|
||||
reconnects.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### shouldFetchOnWindowFocus()
|
||||
|
||||
```ts
|
||||
shouldFetchOnWindowFocus(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:148](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L148)
|
||||
|
||||
Returns whether the observed query is currently stale and configured
|
||||
(via the `refetchOnWindowFocus` option) to refetch when the window
|
||||
regains focus.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`QueryObserverListener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### trackProp()
|
||||
|
||||
```ts
|
||||
trackProp(key): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:350](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L350)
|
||||
|
||||
Records that the given `QueryObserverResult` property was read, so a subsequent update only
|
||||
notifies this observer if a tracked property actually changed. Normally called indirectly via
|
||||
[QueryObserver#trackResult](#trackresult)'s proxy; exposed directly for adapters that track property
|
||||
access themselves (e.g. through their own reactivity system) instead of via the proxy.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### key
|
||||
|
||||
`"error"` | `"data"` | `"isError"` | `"isPending"` | `"isLoading"` | `"isLoadingError"` | `"isRefetchError"` | `"isSuccess"` | `"isPlaceholderData"` | `"status"` | `"dataUpdatedAt"` | `"errorUpdatedAt"` | `"failureCount"` | `"failureReason"` | `"errorUpdateCount"` | `"isFetched"` | `"isFetchedAfterMount"` | `"isFetching"` | `"isInitialLoading"` | `"isPaused"` | `"isRefetching"` | `"isStale"` | `"isEnabled"` | `"refetch"` | `"fetchStatus"`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### trackResult()
|
||||
|
||||
```ts
|
||||
trackResult(result, onPropTracked?): QueryObserverResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:331](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L331)
|
||||
|
||||
Wraps a `QueryObserverResult` in a `Proxy` that records which properties are read, via
|
||||
[QueryObserver#trackProp](#trackprop) (and an optional `onPropTracked` callback). Used by framework
|
||||
adapters when `notifyOnChangeProps` is not set, to implement its default "only re-render on
|
||||
properties you actually read" behavior.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### result
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
##### onPropTracked?
|
||||
|
||||
(`key`) => `void`
|
||||
|
||||
#### Returns
|
||||
|
||||
[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>
|
||||
|
||||
***
|
||||
|
||||
### updateResult()
|
||||
|
||||
```ts
|
||||
updateResult(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/queryObserver.ts:735](https://github.com/TanStack/query/blob/main/packages/query-core/src/queryObserver.ts#L735)
|
||||
|
||||
Recomputes and stores the current result from the current query/options, notifying listeners
|
||||
if it changed. Framework adapters call this right after subscribing to make sure no query
|
||||
update was missed in the gap between creating the observer and subscribing to it.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: defaultShouldDehydrateMutation
|
||||
title: defaultShouldDehydrateMutation
|
||||
---
|
||||
|
||||
```ts
|
||||
function defaultShouldDehydrateMutation(mutation): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:177](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L177)
|
||||
|
||||
The default `shouldDehydrateMutation` predicate used by `dehydrate`. Only dehydrates mutations that are
|
||||
currently paused (e.g. paused by `networkMode` while offline).
|
||||
|
||||
## Parameters
|
||||
|
||||
### mutation
|
||||
|
||||
[`Mutation`](../classes/Mutation.md)
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: defaultShouldDehydrateQuery
|
||||
title: defaultShouldDehydrateQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function defaultShouldDehydrateQuery(query): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:185](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L185)
|
||||
|
||||
The default `shouldDehydrateQuery` predicate used by `dehydrate`. Only dehydrates queries whose status is
|
||||
`'success'`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### query
|
||||
|
||||
[`Query`](../classes/Query.md)
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
43
docs/framework/angular/reference/functions/dehydrate.md
Normal file
43
docs/framework/angular/reference/functions/dehydrate.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
id: dehydrate
|
||||
title: dehydrate
|
||||
---
|
||||
|
||||
```ts
|
||||
function dehydrate(client, options): DehydratedState;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:207](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L207)
|
||||
|
||||
Dehydrates a `QueryClient`'s cache (queries and mutations) into a plain, serializable `DehydratedState`,
|
||||
typically to embed in server-rendered markup and later restore into a client-side `QueryClient` via `hydrate`.
|
||||
Which queries/mutations are included, and how their data/errors are transformed, is controlled by `options`,
|
||||
falling back to the client's `dehydrate` default options, and finally to `defaultShouldDehydrateQuery` /
|
||||
`defaultShouldDehydrateMutation`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### client
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
### options
|
||||
|
||||
[`DehydrateOptions`](../interfaces/DehydrateOptions.md) = `{}`
|
||||
|
||||
## Returns
|
||||
|
||||
[`DehydratedState`](../interfaces/DehydratedState.md)
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
await queryClient.prefetchQuery({
|
||||
queryKey: ['posts'],
|
||||
queryFn: getPosts,
|
||||
})
|
||||
|
||||
const dehydratedState = dehydrate(queryClient)
|
||||
```
|
||||
43
docs/framework/angular/reference/functions/dehydrateQuery.md
Normal file
43
docs/framework/angular/reference/functions/dehydrateQuery.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
id: dehydrateQuery
|
||||
title: dehydrateQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function dehydrateQuery(
|
||||
query,
|
||||
serializeData?,
|
||||
shouldRedactErrors?): DehydratedQuery;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:148](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L148)
|
||||
|
||||
Dehydrates a single `Query` into a serializable `DehydratedQuery` snapshot. Note that most query config (e.g.
|
||||
`queryFn`, `staleTime`) is not dehydrated but instead meant to be configured again when consuming the
|
||||
de/rehydrated data, typically with `useQuery` on the client. If the query is still `pending`, its in-flight
|
||||
promise is dehydrated too so it can be resumed on the other side instead of re-fetched.
|
||||
|
||||
## Parameters
|
||||
|
||||
### query
|
||||
|
||||
[`Query`](../classes/Query.md)
|
||||
|
||||
The query to dehydrate.
|
||||
|
||||
### serializeData?
|
||||
|
||||
`TransformerFn`
|
||||
|
||||
Optional transform applied to `query.state.data` before it is included in the snapshot.
|
||||
|
||||
### shouldRedactErrors?
|
||||
|
||||
(`error`) => `boolean`
|
||||
|
||||
Optional predicate; if it returns `false` for the promise's rejection error, that
|
||||
error is kept as-is instead of being redacted.
|
||||
|
||||
## Returns
|
||||
|
||||
`DehydratedQuery`
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
id: experimental_streamedQuery
|
||||
title: experimental_streamedQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function experimental_streamedQuery<TQueryFnData, TData, TQueryKey>(streamFn): QueryFunction<TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/streamedQuery.ts:75](https://github.com/TanStack/query/blob/main/packages/query-core/src/streamedQuery.ts#L75)
|
||||
|
||||
This is a helper function to create a query function that streams data from an AsyncIterable.
|
||||
Data will be an Array of all the chunks received.
|
||||
The query will be in a 'pending' state until the first chunk of data is received, but will go to 'success' after that.
|
||||
The query will stay in fetchStatus 'fetching' until the stream ends.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`[]
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
## Parameters
|
||||
|
||||
### streamFn
|
||||
|
||||
`StreamedQueryParams`\<`TQueryFnData`, `TData`, `TQueryKey`\>
|
||||
|
||||
The function that returns an AsyncIterable to stream data from.
|
||||
|
||||
## Returns
|
||||
|
||||
[`QueryFunction`](../type-aliases/QueryFunction.md)\<`TData`, `TQueryKey`\>
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
await queryClient.query({
|
||||
queryKey: ['data'],
|
||||
queryFn: streamedQuery({
|
||||
streamFn: fetchDataInChunks,
|
||||
}),
|
||||
})
|
||||
```
|
||||
30
docs/framework/angular/reference/functions/hashKey.md
Normal file
30
docs/framework/angular/reference/functions/hashKey.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: hashKey
|
||||
title: hashKey
|
||||
---
|
||||
|
||||
```ts
|
||||
function hashKey(queryKey): string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:284](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L284)
|
||||
|
||||
Default query & mutation keys hash function.
|
||||
Hashes the value into a stable hash.
|
||||
|
||||
## Parameters
|
||||
|
||||
### queryKey
|
||||
|
||||
readonly `unknown`[]
|
||||
|
||||
## Returns
|
||||
|
||||
`string`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
// Object keys are sorted, so key order doesn't affect the hash:
|
||||
hashKey(['todos', { page: 1, filter: 'done' }]) // === '["todos",{"filter":"done","page":1}]'
|
||||
```
|
||||
49
docs/framework/angular/reference/functions/hydrate.md
Normal file
49
docs/framework/angular/reference/functions/hydrate.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
id: hydrate
|
||||
title: hydrate
|
||||
---
|
||||
|
||||
```ts
|
||||
function hydrate(
|
||||
client,
|
||||
dehydratedState,
|
||||
options?): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:264](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L264)
|
||||
|
||||
Restores a `DehydratedState` (as produced by `dehydrate`) into a `QueryClient`'s cache, typically to seed the
|
||||
client with data already fetched on the server. `mutations` and `queries` are each optional on `dehydratedState`.
|
||||
Queries not yet in the cache are built from the dehydrated snapshot; queries that already exist are only updated
|
||||
when the dehydrated data is newer than what's already cached. Newly built queries have their `fetchStatus` reset
|
||||
to `'idle'` so they don't hydrate stuck in a fetching state. If a dehydrated query still had an in-flight
|
||||
promise, it is resumed via `query.fetch()` (reusing that promise as `initialPromise`) rather than re-invoking
|
||||
`queryFn`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### client
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
### dehydratedState
|
||||
|
||||
`Partial`\<[`DehydratedState`](../interfaces/DehydratedState.md)\>
|
||||
|
||||
### options?
|
||||
|
||||
[`HydrateOptions`](../interfaces/HydrateOptions.md)
|
||||
|
||||
## Returns
|
||||
|
||||
`void`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
// dehydratedState was produced by `dehydrate` on the server
|
||||
// and sent to the client, e.g. embedded in server-rendered markup.
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
hydrate(queryClient, dehydratedState)
|
||||
```
|
||||
@@ -0,0 +1,285 @@
|
||||
---
|
||||
id: infiniteQueryOptions
|
||||
title: infiniteQueryOptions
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & object & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData, unknown>, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/infinite-query-options.ts:181](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L181)
|
||||
|
||||
You can generally pass everything to `infiniteQueryOptions` that you can also pass to
|
||||
`injectInfiniteQuery`. These options can be shared across functions and imperative APIs such as
|
||||
`queryClient.fetchInfiniteQuery`. `options.queryKey` is required and is the query key to generate options
|
||||
for.
|
||||
|
||||
This overload is selected when `initialData` is set.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`DefinedInitialDataInfiniteOptions`](../type-aliases/DefinedInitialDataInfiniteOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
The [DefinedInitialDataInfiniteOptions](../type-aliases/DefinedInitialDataInfiniteOptions.md) to use — everything you can pass to
|
||||
`injectInfiniteQuery`, with `initialData` set.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### See
|
||||
|
||||
[injectInfiniteQuery](injectInfiniteQuery.md) to run an infinite query with these options.
|
||||
|
||||
### Remarks
|
||||
|
||||
See [injectInfiniteQuery](injectInfiniteQuery.md) for examples that fetch further pages, from a button click or
|
||||
automatically as the user scrolls.
|
||||
|
||||
### Example
|
||||
|
||||
```angular-ts
|
||||
import { infiniteQueryOptions, injectInfiniteQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const projectsOptions = infiniteQueryOptions({
|
||||
queryKey: ['projects'],
|
||||
queryFn: ({ pageParam }) => fetchProjects(pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
initialData: { pages: [], pageParams: [] },
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'projects',
|
||||
template: `
|
||||
<!-- `projectsQuery.data()` is never `undefined`, thanks to `initialData` — even if a
|
||||
refetch fails, so the list stays visible alongside the error. -->
|
||||
<ul>
|
||||
@for (page of projectsQuery.data().pages; track $index) {
|
||||
@for (project of page.projects; track project.id) {
|
||||
<li>{{ project.name }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
`,
|
||||
})
|
||||
export class Projects {
|
||||
readonly projectsQuery = injectInfiniteQuery(() => projectsOptions)
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): OmitKeyof<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, "queryFn"> & object & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData, unknown>, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/infinite-query-options.ts:255](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L255)
|
||||
|
||||
You can generally pass everything to `infiniteQueryOptions` that you can also pass to
|
||||
`injectInfiniteQuery`. These options can be shared across functions and imperative APIs such as
|
||||
`queryClient.fetchInfiniteQuery`. `options.queryKey` is required and is the query key to generate options
|
||||
for.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`UnusedSkipTokenInfiniteOptions`](../type-aliases/UnusedSkipTokenInfiniteOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
The [UnusedSkipTokenInfiniteOptions](../type-aliases/UnusedSkipTokenInfiniteOptions.md) to use — everything you can pass to
|
||||
`injectInfiniteQuery`.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### Remarks
|
||||
|
||||
See [injectInfiniteQuery](injectInfiniteQuery.md) for examples that fetch further pages, from a button click or
|
||||
automatically as the user scrolls.
|
||||
|
||||
### Example
|
||||
|
||||
A parameterized factory, so the same options object can be reused per `postId`:
|
||||
```angular-ts
|
||||
import { infiniteQueryOptions, injectInfiniteQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const commentsOptions = (postId: string) =>
|
||||
infiniteQueryOptions({
|
||||
queryKey: ['post', postId, 'comments'],
|
||||
queryFn: ({ pageParam }) => fetchComments(postId, pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'comments',
|
||||
template: `
|
||||
@if (commentsQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (commentsQuery.isError()) {
|
||||
<span>Error: {{ commentsQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<ul>
|
||||
@for (page of commentsQuery.data().pages; track $index) {
|
||||
@for (comment of page.comments; track comment.id) {
|
||||
<li>{{ comment.text }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Comments {
|
||||
readonly postId = signal('1')
|
||||
readonly commentsQuery = injectInfiniteQuery(() => commentsOptions(this.postId()))
|
||||
}
|
||||
```
|
||||
|
||||
### See
|
||||
|
||||
[injectInfiniteQuery](injectInfiniteQuery.md) to run an infinite query with these options.
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function infiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>(options): CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & object & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData, unknown>, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/infinite-query-options.ts:329](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L329)
|
||||
|
||||
You can generally pass everything to `infiniteQueryOptions` that you can also pass to
|
||||
`injectInfiniteQuery`. These options can be shared across functions and imperative APIs such as
|
||||
`queryClient.fetchInfiniteQuery`. `options.queryKey` is required and is the query key to generate options
|
||||
for.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`UndefinedInitialDataInfiniteOptions`](../type-aliases/UndefinedInitialDataInfiniteOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
The [UndefinedInitialDataInfiniteOptions](../type-aliases/UndefinedInitialDataInfiniteOptions.md) to use — everything you can pass to
|
||||
`injectInfiniteQuery`.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### Remarks
|
||||
|
||||
See [injectInfiniteQuery](injectInfiniteQuery.md) for examples that fetch further pages (from a button click or
|
||||
automatically as the user scrolls) and that use `skipToken` to disable the query until `postId` is set.
|
||||
|
||||
### Example
|
||||
|
||||
A parameterized factory, so the same options object can be reused per `postId`:
|
||||
```angular-ts
|
||||
import { infiniteQueryOptions, injectInfiniteQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const commentsOptions = (postId: string) =>
|
||||
infiniteQueryOptions({
|
||||
queryKey: ['post', postId, 'comments'],
|
||||
queryFn: ({ pageParam }) => fetchComments(postId, pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'comments',
|
||||
template: `
|
||||
@if (commentsQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (commentsQuery.isError()) {
|
||||
<span>Error: {{ commentsQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<ul>
|
||||
@for (page of commentsQuery.data().pages; track $index) {
|
||||
@for (comment of page.comments; track comment.id) {
|
||||
<li>{{ comment.text }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Comments {
|
||||
readonly postId = signal('1')
|
||||
readonly commentsQuery = injectInfiniteQuery(() => commentsOptions(this.postId()))
|
||||
}
|
||||
```
|
||||
|
||||
### See
|
||||
|
||||
[injectInfiniteQuery](injectInfiniteQuery.md) to run an infinite query with these options.
|
||||
@@ -0,0 +1,350 @@
|
||||
---
|
||||
id: injectInfiniteQuery
|
||||
title: injectInfiniteQuery
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): DefinedCreateInfiniteQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-infinite-query.ts:83](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L83)
|
||||
|
||||
The options for `injectInfiniteQuery` are identical to `injectQuery`, with the addition of
|
||||
`initialPageParam`, `getNextPageParam`, `getPreviousPageParam`, and `maxPages`. Infinite queries can
|
||||
additively "load more" data onto an existing set of data, or "infinite scroll".
|
||||
|
||||
This overload is selected when `initialData` is set on the options returned by `injectInfiniteQueryFn`,
|
||||
so the resulting `data` signal is never `undefined` (unless a `select` changes `TData` to include `undefined`).
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectInfiniteQueryFn
|
||||
|
||||
() => [`DefinedInitialDataInfiniteOptions`](../type-aliases/DefinedInitialDataInfiniteOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
A function returning the [DefinedInitialDataInfiniteOptions](../type-aliases/DefinedInitialDataInfiniteOptions.md) to use —
|
||||
everything you can pass to `injectInfiniteQuery`, with `initialData` set. Similar to `computed` from
|
||||
Angular, this function runs in the reactive context, so signals read inside it drive the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectInfiniteQueryOptions`](../interfaces/InjectInfiniteQueryOptions.md)
|
||||
|
||||
Additional configuration.
|
||||
|
||||
### Returns
|
||||
|
||||
[`DefinedCreateInfiniteQueryResult`](../type-aliases/DefinedCreateInfiniteQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The same signals as `injectQuery`, with the addition of `fetchNextPage`, `fetchPreviousPage`,
|
||||
`hasNextPage`, `hasPreviousPage`, `isFetchingNextPage`, and `isFetchingPreviousPage`. `data().pages` and
|
||||
`data().pageParams` are also added, as long as a `select` doesn't change `TData` away from its default
|
||||
`InfiniteData<TQueryFnData>` shape.
|
||||
|
||||
### Remarks
|
||||
|
||||
Keep in mind that imperative fetch calls, such as `fetchNextPage`, may interfere with the default
|
||||
refetch behavior, resulting in outdated data. Make sure to call these functions only in response to user
|
||||
actions, or add conditions like `hasNextPage() && !isFetching()`.
|
||||
|
||||
### See
|
||||
|
||||
[infiniteQueryOptions](infiniteQueryOptions.md) to share these options between `injectInfiniteQuery` and imperative APIs
|
||||
like `queryClient.fetchInfiniteQuery`.
|
||||
|
||||
### Example
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'projects',
|
||||
template: `
|
||||
<!-- `projectsQuery.data()` is never `undefined`, thanks to `initialData` — even if a
|
||||
refetch fails, so the list stays visible alongside the error. -->
|
||||
<ul>
|
||||
@for (page of projectsQuery.data().pages; track $index) {
|
||||
@for (project of page.projects; track project.id) {
|
||||
<li>{{ project.name }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
`,
|
||||
})
|
||||
export class Projects {
|
||||
readonly projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: ({ pageParam }) => fetchProjects(pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
initialData: { pages: [], pageParams: [] },
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-infinite-query.ts:239](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L239)
|
||||
|
||||
Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a
|
||||
unique key. Infinite queries can additively "load more" data onto an existing set of data, or
|
||||
"infinite scroll".
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectInfiniteQueryFn
|
||||
|
||||
() => [`UndefinedInitialDataInfiniteOptions`](../type-aliases/UndefinedInitialDataInfiniteOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
A function returning the [UndefinedInitialDataInfiniteOptions](../type-aliases/UndefinedInitialDataInfiniteOptions.md) to use
|
||||
— everything you can pass to `injectInfiniteQuery`. Similar to `computed` from Angular, this function runs
|
||||
in the reactive context, so signals read inside it drive the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectInfiniteQueryOptions`](../interfaces/InjectInfiniteQueryOptions.md)
|
||||
|
||||
Additional configuration.
|
||||
|
||||
### Returns
|
||||
|
||||
[`CreateInfiniteQueryResult`](../type-aliases/CreateInfiniteQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The same signals as `injectQuery`, with the addition of `fetchNextPage`, `fetchPreviousPage`,
|
||||
`hasNextPage`, `hasPreviousPage`, `isFetchingNextPage`, and `isFetchingPreviousPage`. `data().pages` and
|
||||
`data().pageParams` are also added, as long as a `select` doesn't change `TData` away from its default
|
||||
`InfiniteData<TQueryFnData>` shape.
|
||||
|
||||
### Remarks
|
||||
|
||||
Keep in mind that imperative fetch calls, such as `fetchNextPage`, may interfere with the default
|
||||
refetch behavior, resulting in outdated data. Make sure to call these functions only in response to user
|
||||
actions, or add conditions like `hasNextPage() && !isFetching()`. This is the only overload that accepts
|
||||
`queryFn: skipToken`, shown below.
|
||||
|
||||
### See
|
||||
|
||||
[infiniteQueryOptions](infiniteQueryOptions.md) to share these options between `injectInfiniteQuery` and imperative APIs
|
||||
like `queryClient.fetchInfiniteQuery`.
|
||||
|
||||
### Examples
|
||||
|
||||
Fetching the next page from a button click:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'projects-list',
|
||||
template: `
|
||||
<ul>
|
||||
@for (page of projectsQuery.data()?.pages; track $index) {
|
||||
@for (project of page.projects; track project.id) {
|
||||
<li>{{ project.name }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
<button
|
||||
[disabled]="!projectsQuery.hasNextPage() || projectsQuery.isFetching()"
|
||||
(click)="projectsQuery.fetchNextPage()"
|
||||
>
|
||||
Load More
|
||||
</button>
|
||||
`,
|
||||
})
|
||||
export class ProjectsList {
|
||||
readonly projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: ({ pageParam }) => fetchProjects(pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
Fetching the next page automatically as the user scrolls, using an `IntersectionObserver` on a sentinel
|
||||
element after the list:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'projects-list',
|
||||
template: `
|
||||
<ul>
|
||||
@for (page of projectsQuery.data()?.pages; track $index) {
|
||||
@for (project of page.projects; track project.id) {
|
||||
<li>{{ project.name }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
<div #sentinel>{{ projectsQuery.isFetchingNextPage() ? 'Loading more...' : '' }}</div>
|
||||
`,
|
||||
})
|
||||
export class ProjectsList {
|
||||
readonly sentinel = viewChild<ElementRef<HTMLElement>>('sentinel')
|
||||
|
||||
readonly projectsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['projects'],
|
||||
queryFn: ({ pageParam }) => fetchProjects(pageParam),
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
}))
|
||||
|
||||
constructor() {
|
||||
effect((onCleanup) => {
|
||||
const sentinel = this.sentinel()?.nativeElement
|
||||
if (
|
||||
sentinel == null ||
|
||||
!this.projectsQuery.hasNextPage() ||
|
||||
this.projectsQuery.isFetching()
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
const observer = new IntersectionObserver(([entry]) => {
|
||||
if (entry?.isIntersecting) this.projectsQuery.fetchNextPage()
|
||||
})
|
||||
observer.observe(sentinel)
|
||||
|
||||
onCleanup(() => observer.disconnect())
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
A query that's disabled, type safe, until `postId` is set — pass `skipToken` as `queryFn` instead of
|
||||
setting `enabled: false`:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'comments',
|
||||
template: `
|
||||
@if (postId() == null) {
|
||||
Select a post
|
||||
} @else if (commentsQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (commentsQuery.isError()) {
|
||||
<span>Error: {{ commentsQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<ul>
|
||||
@for (page of commentsQuery.data().pages; track $index) {
|
||||
@for (comment of page.comments; track comment.id) {
|
||||
<li>{{ comment.text }}</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Comments {
|
||||
readonly postId = signal<string | undefined>(undefined)
|
||||
|
||||
readonly commentsQuery = injectInfiniteQuery(() => ({
|
||||
queryKey: ['post', this.postId(), 'comments'],
|
||||
queryFn:
|
||||
this.postId() != null
|
||||
? ({ pageParam }) => fetchComments(this.postId()!, pageParam)
|
||||
: skipToken,
|
||||
initialPageParam: 0,
|
||||
getNextPageParam: (lastPage) => lastPage.nextId,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectInfiniteQuery<TQueryFnData, TError, TData, TQueryKey, TPageParam>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-infinite-query.ts:267](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L267)
|
||||
|
||||
This overload accepts the general [CreateInfiniteQueryOptions](../interfaces/CreateInfiniteQueryOptions.md) shape rather than the
|
||||
`initialData`-aware overloads above, so whether `data` is defined can't be inferred from the call site —
|
||||
useful when wrapping `injectInfiniteQuery` in your own helper function that forwards caller-provided
|
||||
options.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = [`InfiniteData`](../interfaces/InfiniteData.md)\<`TQueryFnData`, `unknown`\>
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
#### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectInfiniteQueryFn
|
||||
|
||||
() => [`CreateInfiniteQueryOptions`](../interfaces/CreateInfiniteQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
A function that returns infinite query options. Similar to `computed` from
|
||||
Angular, this function runs in the reactive context, so signals read inside it drive the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectInfiniteQueryOptions`](../interfaces/InjectInfiniteQueryOptions.md)
|
||||
|
||||
Additional configuration.
|
||||
|
||||
### Returns
|
||||
|
||||
[`CreateInfiniteQueryResult`](../type-aliases/CreateInfiniteQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The infinite query result.
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
id: injectIsFetching
|
||||
title: injectIsFetching
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectIsFetching(filters?, options?): Signal<number>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-is-fetching.ts:63](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L63)
|
||||
|
||||
Injects a signal that tracks the number of queries that your application is loading or fetching in the
|
||||
background (useful for app-wide loading indicators).
|
||||
|
||||
## Parameters
|
||||
|
||||
### filters?
|
||||
|
||||
[`QueryFilters`](../interfaces/QueryFilters.md)\<readonly `unknown`[]\>
|
||||
|
||||
The [QueryFilters](../interfaces/QueryFilters.md) to narrow down the matched queries.
|
||||
|
||||
### options?
|
||||
|
||||
[`InjectIsFetchingOptions`](../interfaces/InjectIsFetchingOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
## Returns
|
||||
|
||||
`Signal`\<`number`\>
|
||||
|
||||
A `Signal` with the number of queries that your application is currently loading or fetching in
|
||||
the background.
|
||||
|
||||
## Examples
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'posts-fetching-indicator',
|
||||
template: `
|
||||
@if (isFetchingPosts()) {
|
||||
<span>Refreshing posts...</span>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class PostsFetchingIndicator {
|
||||
// How many queries matching the posts prefix are fetching?
|
||||
readonly isFetchingPosts = injectIsFetching({ queryKey: ['posts'] })
|
||||
}
|
||||
```
|
||||
|
||||
A global loading indicator for any query fetching in the background, not just the ones on screen:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'global-loading-indicator',
|
||||
template: `
|
||||
@if (isFetching()) {
|
||||
<div>Queries are fetching in the background...</div>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class GlobalLoadingIndicator {
|
||||
readonly isFetching = injectIsFetching()
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
id: injectIsMutating
|
||||
title: injectIsMutating
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectIsMutating(filters?, options?): Signal<number>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-is-mutating.ts:46](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L46)
|
||||
|
||||
Injects a signal that tracks the number of mutations that your application currently has `pending`
|
||||
(useful for app-wide loading indicators).
|
||||
|
||||
## Parameters
|
||||
|
||||
### filters?
|
||||
|
||||
[`MutationFilters`](../interfaces/MutationFilters.md)\<`unknown`, `Error`, `unknown`, `unknown`\>
|
||||
|
||||
The [MutationFilters](../interfaces/MutationFilters.md) to narrow down the matched mutations.
|
||||
|
||||
### options?
|
||||
|
||||
[`InjectIsMutatingOptions`](../interfaces/InjectIsMutatingOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
## Returns
|
||||
|
||||
`Signal`\<`number`\>
|
||||
|
||||
A `Signal` with the number of mutations that your application currently has `pending`.
|
||||
|
||||
## Example
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'posts-mutating-indicator',
|
||||
template: `
|
||||
@if (isMutatingPosts()) {
|
||||
<span>Saving posts...</span>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class PostsMutatingIndicator {
|
||||
// How many mutations matching the posts prefix are in progress?
|
||||
readonly isMutatingPosts = injectIsMutating({ mutationKey: ['posts'] })
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
id: injectIsRestoring
|
||||
title: injectIsRestoring
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectIsRestoring(options?): Signal<boolean>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-is-restoring.ts:35](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L35)
|
||||
|
||||
Injects a signal that tracks whether a restore (e.g. from a persisted client, wired up via
|
||||
`provideIsRestoring`) is currently in progress. `injectQuery` and friends also check this internally to
|
||||
avoid race conditions between the restore and initializing queries.
|
||||
|
||||
## Parameters
|
||||
|
||||
### options?
|
||||
|
||||
`InjectIsRestoringOptions`
|
||||
|
||||
Additional configuration
|
||||
|
||||
## Returns
|
||||
|
||||
`Signal`\<`boolean`\>
|
||||
|
||||
A readonly `Signal<boolean>` — `true` while a restore is in progress, `false` otherwise (the
|
||||
default when no `provideIsRestoring` provider is registered).
|
||||
184
docs/framework/angular/reference/functions/injectMutation.md
Normal file
184
docs/framework/angular/reference/functions/injectMutation.md
Normal file
@@ -0,0 +1,184 @@
|
||||
---
|
||||
id: injectMutation
|
||||
title: injectMutation
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectMutation<TData, TError, TVariables, TOnMutateResult>(injectMutationFn, options?): CreateMutationResult<TData, TError, TVariables, TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-mutation.ts:174](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L174)
|
||||
|
||||
Unlike queries, mutations are typically used to create/update/delete data or perform server side-effects.
|
||||
`injectMutation` is the function for that. Unlike queries, mutations are not run automatically.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
### TVariables
|
||||
|
||||
`TVariables` = `void`
|
||||
|
||||
### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
## Parameters
|
||||
|
||||
### injectMutationFn
|
||||
|
||||
() => [`CreateMutationOptions`](../interfaces/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
A function that returns mutation options. Similar to `computed` from Angular,
|
||||
this function runs in the reactive context, so signals read inside it drive the mutation's options.
|
||||
|
||||
### options?
|
||||
|
||||
[`InjectMutationOptions`](../interfaces/InjectMutationOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
## Returns
|
||||
|
||||
[`CreateMutationResult`](../type-aliases/CreateMutationResult.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>
|
||||
|
||||
The mutation result. Value fields are exposed as a `Signal` — read `data`/`error` by calling them
|
||||
(e.g. `mutation.data()`) — while function fields (`mutate`, `mutateAsync`, `reset`) are called directly,
|
||||
unchanged. `isSuccess`/`isError`/`isPending`/`isIdle` are type-guard methods you can call to narrow whether
|
||||
`data` is defined.
|
||||
|
||||
## Remarks
|
||||
|
||||
`mutate`/`mutateAsync` also accept per-call `onSuccess`/`onError`/`onSettled` callbacks as a
|
||||
second argument, useful for triggering call-site side effects (e.g. navigation) without coupling them to
|
||||
the shared mutation definition. Callbacks defined in `injectMutationFn` fire for every mutation; per-call
|
||||
callbacks fire only for the latest call you've made — `mutateAsync` gives you a promise per call instead,
|
||||
so you can await `Promise.all`/`Promise.allSettled` over several calls and see each one's outcome.
|
||||
|
||||
## See
|
||||
|
||||
[mutationOptions](mutationOptions.md) to share these options across multiple `injectMutation` call sites, or to look
|
||||
the mutation up elsewhere via its `mutationKey` (e.g. with `injectMutationState`).
|
||||
|
||||
## Examples
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
@if (addMutation.isPending()) {
|
||||
<span>Adding todo...</span>
|
||||
} @else if (addMutation.isError()) {
|
||||
<div>An error occurred: {{ addMutation.error()?.message }}</div>
|
||||
}
|
||||
<button (click)="addMutation.mutate('Item')">Add</button>
|
||||
`,
|
||||
})
|
||||
export class Todos {
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
readonly addMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: () => this.#queryClient.invalidateQueries({ queryKey: ['todos'] }),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
Optimistic update via `onMutate`, rolling back on `onError`:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `<button (click)="addMutation.mutate('Item')">Add</button>`,
|
||||
})
|
||||
export class Todos {
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
readonly addMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onMutate: async (newTodo) => {
|
||||
await this.#queryClient.cancelQueries({ queryKey: ['todos'] })
|
||||
const previousTodos = this.#queryClient.getQueryData<Array<string>>(['todos'])
|
||||
|
||||
this.#queryClient.setQueryData<Array<string>>(['todos'], (old) => [
|
||||
...(old ?? []),
|
||||
newTodo,
|
||||
])
|
||||
|
||||
// Passed to `onError` as `onMutateResult` if the mutation fails.
|
||||
return { previousTodos }
|
||||
},
|
||||
onError: (_err, _newTodo, onMutateResult) => {
|
||||
this.#queryClient.setQueryData(['todos'], onMutateResult?.previousTodos)
|
||||
},
|
||||
onSettled: () => {
|
||||
this.#queryClient.invalidateQueries({ queryKey: ['todos'] })
|
||||
},
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
Callbacks passed per call to `mutate` only fire for the last call — `mutateAsync` gives you a promise per
|
||||
call instead, so you can wait for all of them when they succeed:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
<button (click)="handleAddAll(['Todo 1', 'Todo 2', 'Todo 3'])">Add all</button>
|
||||
`,
|
||||
})
|
||||
export class Todos {
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
readonly addMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: () => this.#queryClient.invalidateQueries({ queryKey: ['todos'] }),
|
||||
}))
|
||||
|
||||
async handleAddAll(todos: Array<string>) {
|
||||
try {
|
||||
await Promise.all(todos.map((todo) => this.addMutation.mutateAsync(todo)))
|
||||
} catch (error) {
|
||||
console.error('Failed to add todos:', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
If some of the mutations above can fail independently of the others, and you want to know which ones did —
|
||||
rather than losing that information the moment the first one rejects — swap `Promise.all` for
|
||||
`Promise.allSettled`:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'todos',
|
||||
template: `
|
||||
<button (click)="handleAddAll(['Todo 1', 'Todo 2', 'Todo 3'])">Add all</button>
|
||||
`,
|
||||
})
|
||||
export class Todos {
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
readonly addMutation = injectMutation(() => ({
|
||||
mutationFn: addTodo,
|
||||
onSuccess: () => this.#queryClient.invalidateQueries({ queryKey: ['todos'] }),
|
||||
}))
|
||||
|
||||
async handleAddAll(todos: Array<string>) {
|
||||
const addResults = await Promise.allSettled(
|
||||
todos.map((todo) => this.addMutation.mutateAsync(todo)),
|
||||
)
|
||||
|
||||
addResults.forEach((addResult, index) => {
|
||||
if (addResult.status === 'rejected') {
|
||||
console.error(`Failed to add "${todos[index]}":`, addResult.reason)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
id: injectMutationState
|
||||
title: injectMutationState
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectMutationState<TResult>(injectMutationStateFn, options?): Signal<TResult[]>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-mutation-state.ts:106](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L106)
|
||||
|
||||
Injects a signal that gives you access to all mutations in the `MutationCache`. You can pass `filters`
|
||||
([MutationFilters](../interfaces/MutationFilters.md)) to narrow down your mutations, and `select` to transform the mutation state.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TResult
|
||||
|
||||
`TResult` = [`MutationState`](../interfaces/MutationState.md)\<`unknown`, `Error`, `unknown`, `unknown`\>
|
||||
|
||||
## Parameters
|
||||
|
||||
### injectMutationStateFn
|
||||
|
||||
() => `MutationStateOptions`\<`TResult`\>
|
||||
|
||||
A function returning the `filters` to narrow down matched mutations, and an
|
||||
optional `select` to transform the mutation state. Similar to `computed` from Angular, this function runs
|
||||
in the reactive context, so signals read inside it re-narrow the matched mutations.
|
||||
|
||||
### options?
|
||||
|
||||
[`InjectMutationStateOptions`](../interfaces/InjectMutationStateOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
## Returns
|
||||
|
||||
`Signal`\<`TResult`[]\>
|
||||
|
||||
A `Signal` with an Array of whatever `select` returns for each matching mutation.
|
||||
|
||||
## Examples
|
||||
|
||||
Get all variables of all running mutations:
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'pending-posts',
|
||||
template: `{{ pendingVariables().length }} posts saving...`,
|
||||
})
|
||||
export class PendingPosts {
|
||||
readonly pendingVariables = injectMutationState(() => ({
|
||||
filters: { status: 'pending' },
|
||||
select: (mutation) => mutation.state.variables,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
Get all data for specific mutations via the `mutationKey`:
|
||||
```angular-ts
|
||||
const mutationKey = ['posts']
|
||||
|
||||
@Component({
|
||||
selector: 'posts',
|
||||
template: `
|
||||
<button (click)="createPost()">
|
||||
Create post ({{ savedPosts().length }} saved so far)
|
||||
</button>
|
||||
`,
|
||||
})
|
||||
export class Posts {
|
||||
// Some mutation that we want to get the state for
|
||||
readonly createPostMutation = injectMutation(() => ({
|
||||
mutationKey,
|
||||
mutationFn: createPosts,
|
||||
}))
|
||||
|
||||
readonly savedPosts = injectMutationState(() => ({
|
||||
// this mutation key needs to match the mutation key of the given mutation (see above)
|
||||
filters: { mutationKey, status: 'success' },
|
||||
select: (mutation) => mutation.state.data,
|
||||
}))
|
||||
|
||||
createPost() {
|
||||
this.createPostMutation.mutate(['New Post'])
|
||||
}
|
||||
}
|
||||
```
|
||||
263
docs/framework/angular/reference/functions/injectQuery.md
Normal file
263
docs/framework/angular/reference/functions/injectQuery.md
Normal file
@@ -0,0 +1,263 @@
|
||||
---
|
||||
id: injectQuery
|
||||
title: injectQuery
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): DefinedCreateQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-query.ts:69](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L69)
|
||||
|
||||
This overload is selected when `initialData` is set on the options returned by `injectQueryFn`, so the
|
||||
resulting `data` signal is never `undefined` (unless a `select` changes `TData` to include `undefined`).
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectQueryFn
|
||||
|
||||
() => [`DefinedInitialDataOptions`](../type-aliases/DefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
A function returning the [DefinedInitialDataOptions](../type-aliases/DefinedInitialDataOptions.md) to use — everything you
|
||||
can pass to `injectQuery`, with `initialData` set. Similar to `computed` from Angular, this function runs
|
||||
in the reactive context, so signals read inside it (in `queryKey`, `enabled`, etc.) drive the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectQueryOptions`](../interfaces/InjectQueryOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
### Returns
|
||||
|
||||
[`DefinedCreateQueryResult`](../type-aliases/DefinedCreateQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The query result, typed so that `data` is never `undefined` (unless a `select` changes `TData` to
|
||||
include `undefined`).
|
||||
|
||||
### See
|
||||
|
||||
- https://tanstack.com/query/latest/docs/framework/angular/guides/queries
|
||||
- [queryOptions](queryOptions.md) to share these options between `injectQuery` and imperative APIs like
|
||||
`queryClient.fetchQuery`.
|
||||
|
||||
### Example
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'posts',
|
||||
template: `
|
||||
<!-- `postsQuery.data()` is `Post[]`, never `undefined`, thanks to `initialData` — even if a
|
||||
refetch fails, so the list stays visible alongside the error. -->
|
||||
@if (postsQuery.isError()) {
|
||||
<span>Error: {{ postsQuery.error()?.message }}</span>
|
||||
}
|
||||
<ul>
|
||||
@for (post of postsQuery.data(); track post.id) {
|
||||
<li>{{ post.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
`,
|
||||
})
|
||||
export class Posts {
|
||||
readonly postsQuery = injectQuery(() => ({
|
||||
queryKey: ['posts'],
|
||||
queryFn: fetchPosts,
|
||||
initialData: [],
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): CreateQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-query.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L158)
|
||||
|
||||
Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectQueryFn
|
||||
|
||||
() => [`UndefinedInitialDataOptions`](../type-aliases/UndefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
A function returning the [UndefinedInitialDataOptions](../type-aliases/UndefinedInitialDataOptions.md) to use — everything
|
||||
you can pass to `injectQuery`. Similar to `computed` from Angular, this function runs in the reactive
|
||||
context, so signals read inside it (in `queryKey`, `enabled`, etc.) drive the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectQueryOptions`](../interfaces/InjectQueryOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
### Returns
|
||||
|
||||
[`CreateQueryResult`](../type-aliases/CreateQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The query result. `status()` is `'pending'` if there is no cached data to display, `'error'` if
|
||||
the last fetch attempt failed, or `'success'` if the query has data to display. `isPending`/`isSuccess`/
|
||||
`isError` are type-guard methods for convenience.
|
||||
|
||||
### See
|
||||
|
||||
- https://tanstack.com/query/latest/docs/framework/angular/guides/queries
|
||||
- [queryOptions](queryOptions.md) to share these options between `injectQuery` and imperative APIs like
|
||||
`queryClient.fetchQuery`.
|
||||
|
||||
### Examples
|
||||
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'posts',
|
||||
template: `
|
||||
@if (postsQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (postsQuery.isError()) {
|
||||
<span>Error: {{ postsQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<ul>
|
||||
@for (post of postsQuery.data(); track post.id) {
|
||||
<li>{{ post.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Posts {
|
||||
readonly postsQuery = injectQuery(() => ({
|
||||
queryKey: ['posts'],
|
||||
queryFn: fetchPosts,
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
Similar to `computed` from Angular, the function passed to `injectQuery` runs in the reactive context. In
|
||||
the example below, the query is automatically enabled and executed when the filter signal changes to a
|
||||
truthy value. When the filter signal changes back to a falsy value, the query is disabled.
|
||||
```angular-ts
|
||||
@Component({
|
||||
selector: 'posts',
|
||||
template: `
|
||||
<input [ngModel]="filter()" (ngModelChange)="filter.set($event)" />
|
||||
@if (postsQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (postsQuery.isError()) {
|
||||
<span>Error: {{ postsQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<ul>
|
||||
@for (post of postsQuery.data(); track post.id) {
|
||||
<li>{{ post.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Posts {
|
||||
readonly filter = signal('')
|
||||
|
||||
readonly postsQuery = injectQuery(() => ({
|
||||
queryKey: ['posts', this.filter()],
|
||||
queryFn: () => fetchPosts(this.filter()),
|
||||
// Signals can be combined with expressions
|
||||
enabled: !!this.filter(),
|
||||
}))
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function injectQuery<TQueryFnData, TError, TData, TQueryKey>(injectQueryFn, options?): CreateQueryResult<TData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-query.ts:185](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L185)
|
||||
|
||||
This overload accepts the general [CreateQueryOptions](../interfaces/CreateQueryOptions.md) shape rather than the `initialData`-aware
|
||||
overloads above, so whether `data` is defined can't be inferred from the call site — useful when wrapping
|
||||
`injectQuery` in your own helper function that forwards caller-provided options.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### injectQueryFn
|
||||
|
||||
() => [`CreateQueryOptions`](../interfaces/CreateQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
A function that returns query options. Similar to `computed` from Angular, this
|
||||
function runs in the reactive context, so signals read inside it (in `queryKey`, `enabled`, etc.) drive
|
||||
the query.
|
||||
|
||||
#### options?
|
||||
|
||||
[`InjectQueryOptions`](../interfaces/InjectQueryOptions.md)
|
||||
|
||||
Additional configuration
|
||||
|
||||
### Returns
|
||||
|
||||
[`CreateQueryResult`](../type-aliases/CreateQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
The query result.
|
||||
|
||||
### See
|
||||
|
||||
https://tanstack.com/query/latest/docs/framework/angular/guides/queries
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: injectQueryClient
|
||||
title: injectQueryClient
|
||||
---
|
||||
|
||||
```ts
|
||||
function injectQueryClient(injectOptions): QueryClient;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-query-client.ts:18](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query-client.ts#L18)
|
||||
|
||||
Injects a `QueryClient` instance and allows passing a custom injector.
|
||||
|
||||
## Parameters
|
||||
|
||||
### injectOptions
|
||||
|
||||
`InjectOptions` & `object` = `{}`
|
||||
|
||||
Type of the options argument to inject and optionally a custom injector.
|
||||
|
||||
## Returns
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
The `QueryClient` instance.
|
||||
|
||||
## Deprecated
|
||||
|
||||
Use `inject(QueryClient)` instead.
|
||||
If you need to get a `QueryClient` from a custom injector, use `injector.get(QueryClient)`.
|
||||
|
||||
**Example**
|
||||
```ts
|
||||
const queryClient = injectQueryClient();
|
||||
```
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
id: isCancelledError
|
||||
title: isCancelledError
|
||||
---
|
||||
|
||||
```ts
|
||||
function isCancelledError(value): value is CancelledError;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/retryer.ts:90](https://github.com/TanStack/query/blob/main/packages/query-core/src/retryer.ts#L90)
|
||||
|
||||
## Parameters
|
||||
|
||||
### value
|
||||
|
||||
`any`
|
||||
|
||||
## Returns
|
||||
|
||||
`value is CancelledError`
|
||||
|
||||
## Deprecated
|
||||
|
||||
Use instanceof `CancelledError` instead.
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
id: keepPreviousData
|
||||
title: keepPreviousData
|
||||
---
|
||||
|
||||
```ts
|
||||
function keepPreviousData<T>(previousData): T | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:493](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L493)
|
||||
|
||||
Intended to be passed as a query's `placeholderData` option, for example
|
||||
`placeholderData: keepPreviousData`. Instead of resetting the query's data to `undefined` while a new
|
||||
query key is fetching, it keeps displaying the previously fetched data until the new data arrives.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### T
|
||||
|
||||
`T`
|
||||
|
||||
## Parameters
|
||||
|
||||
### previousData
|
||||
|
||||
`T` | `undefined`
|
||||
|
||||
## Returns
|
||||
|
||||
`T` \| `undefined`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
new QueryObserver(queryClient, {
|
||||
queryKey: ['posts', page],
|
||||
queryFn: () => fetchPosts(page),
|
||||
placeholderData: keepPreviousData,
|
||||
})
|
||||
```
|
||||
38
docs/framework/angular/reference/functions/matchMutation.md
Normal file
38
docs/framework/angular/reference/functions/matchMutation.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: matchMutation
|
||||
title: matchMutation
|
||||
---
|
||||
|
||||
```ts
|
||||
function matchMutation(filters, mutation): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:237](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L237)
|
||||
|
||||
Checks whether a mutation matches the given [MutationFilters](../interfaces/MutationFilters.md).
|
||||
Every filter that is specified must match; filters that are left unspecified are ignored.
|
||||
If a `mutationKey` filter is provided but the mutation has no `mutationKey` of its own, it does not match.
|
||||
|
||||
## Parameters
|
||||
|
||||
### filters
|
||||
|
||||
[`MutationFilters`](../interfaces/MutationFilters.md)
|
||||
|
||||
### mutation
|
||||
|
||||
[`Mutation`](../classes/Mutation.md)\<`any`, `any`\>
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const mutationCache = queryClient.getMutationCache()
|
||||
|
||||
const matchingMutations = mutationCache
|
||||
.getAll()
|
||||
.filter((mutation) => matchMutation({ mutationKey: ['addPost'] }, mutation))
|
||||
```
|
||||
37
docs/framework/angular/reference/functions/matchQuery.md
Normal file
37
docs/framework/angular/reference/functions/matchQuery.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: matchQuery
|
||||
title: matchQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function matchQuery(filters, query): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:175](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L175)
|
||||
|
||||
Checks whether a query matches the given [QueryFilters](../interfaces/QueryFilters.md).
|
||||
Every filter that is specified must match; filters that are left unspecified are ignored.
|
||||
|
||||
## Parameters
|
||||
|
||||
### filters
|
||||
|
||||
[`QueryFilters`](../interfaces/QueryFilters.md)
|
||||
|
||||
### query
|
||||
|
||||
[`Query`](../classes/Query.md)\<`any`, `any`, `any`, `any`\>
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const queryCache = queryClient.getQueryCache()
|
||||
|
||||
const matchingQueries = queryCache
|
||||
.getAll()
|
||||
.filter((query) => matchQuery({ queryKey: ['posts'] }, query))
|
||||
```
|
||||
167
docs/framework/angular/reference/functions/mutationOptions.md
Normal file
167
docs/framework/angular/reference/functions/mutationOptions.md
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
id: mutationOptions
|
||||
title: mutationOptions
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function mutationOptions<TData, TError, TVariables, TOnMutateResult>(options): WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/mutation-options.ts:40](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L40)
|
||||
|
||||
You can generally pass everything to `mutationOptions` that you can also pass to `injectMutation`. A
|
||||
`mutationKey` is required on this overload so the mutation can be looked up later, e.g. with
|
||||
`injectMutationState`.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TVariables
|
||||
|
||||
`TVariables` = `void`
|
||||
|
||||
#### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`WithRequired`](../type-aliases/WithRequired.md)\<[`CreateMutationOptions`](../interfaces/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\>
|
||||
|
||||
The mutation options to use, identical to what you'd pass to `injectMutation`, with a
|
||||
required `mutationKey`.
|
||||
|
||||
### Returns
|
||||
|
||||
[`WithRequired`](../type-aliases/WithRequired.md)\<[`CreateMutationOptions`](../interfaces/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\>
|
||||
|
||||
The same options object, unchanged.
|
||||
|
||||
### See
|
||||
|
||||
[injectMutation](injectMutation.md) to run the mutation these options describe.
|
||||
|
||||
### Example
|
||||
|
||||
Looking the mutation up elsewhere via its `mutationKey`, e.g. for a global "saving…" indicator:
|
||||
```angular-ts
|
||||
import { mutationOptions, injectMutationState } from '@tanstack/angular-query-experimental'
|
||||
|
||||
const createPostOptions = mutationOptions({
|
||||
mutationKey: ['posts', 'create'],
|
||||
mutationFn: createPost,
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'saving-indicator',
|
||||
template: `
|
||||
@if (isCreatingPost()) {
|
||||
<span>Saving…</span>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class SavingIndicator {
|
||||
readonly #pendingCreates = injectMutationState(() => ({
|
||||
filters: { mutationKey: createPostOptions.mutationKey, status: 'pending' },
|
||||
}))
|
||||
readonly isCreatingPost = computed(() => this.#pendingCreates().length > 0)
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function mutationOptions<TData, TError, TVariables, TOnMutateResult>(options): Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/mutation-options.ts:98](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L98)
|
||||
|
||||
You can generally pass everything to `mutationOptions` that you can also pass to `injectMutation`. No
|
||||
`mutationKey` is required on this overload — use this when you don't need to target the mutation via a
|
||||
`mutationKey` filter later (e.g. with `injectMutationState`); it can still be observed through other
|
||||
filters, such as `status`.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TVariables
|
||||
|
||||
`TVariables` = `void`
|
||||
|
||||
#### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
`Omit`\<[`CreateMutationOptions`](../interfaces/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\>
|
||||
|
||||
The mutation options to use, identical to what you'd pass to `injectMutation`, without a
|
||||
`mutationKey`.
|
||||
|
||||
### Returns
|
||||
|
||||
`Omit`\<[`CreateMutationOptions`](../interfaces/CreateMutationOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\>
|
||||
|
||||
The same options object, unchanged.
|
||||
|
||||
### See
|
||||
|
||||
[injectMutation](injectMutation.md) to run the mutation these options describe.
|
||||
|
||||
### Remarks
|
||||
|
||||
See the other overload's example for looking a mutation up via `injectMutationState`.
|
||||
|
||||
### Example
|
||||
|
||||
Sharing options across services, so `QueriesService` stays the single place a mutation is defined:
|
||||
```angular-ts
|
||||
import { mutationOptions, injectMutation } from '@tanstack/angular-query-experimental'
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class QueriesService {
|
||||
readonly #queryClient = inject(QueryClient)
|
||||
|
||||
updatePost(id: number) {
|
||||
return mutationOptions({
|
||||
mutationFn: (post: Partial<Post>) => putPost(id, post),
|
||||
onSuccess: (newPost) => this.#queryClient.setQueryData(['posts', id], newPost),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'post',
|
||||
template: `<button (click)="save()">Save</button>`,
|
||||
})
|
||||
export class Post {
|
||||
readonly queries = inject(QueriesService)
|
||||
readonly id = signal(0)
|
||||
readonly updatePostMutation = injectMutation(() => this.queries.updatePost(this.id()))
|
||||
|
||||
save() {
|
||||
this.updatePostMutation.mutate({ title: 'New Title' })
|
||||
}
|
||||
}
|
||||
```
|
||||
32
docs/framework/angular/reference/functions/noop.md
Normal file
32
docs/framework/angular/reference/functions/noop.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
id: noop
|
||||
title: noop
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function noop(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:119](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L119)
|
||||
|
||||
A function that does nothing.
|
||||
|
||||
### Returns
|
||||
|
||||
`void`
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function noop(): undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:120](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L120)
|
||||
|
||||
A function that does nothing.
|
||||
|
||||
### Returns
|
||||
|
||||
`undefined`
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
id: partialMatchKey
|
||||
title: partialMatchKey
|
||||
---
|
||||
|
||||
```ts
|
||||
function partialMatchKey(a, b): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:300](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L300)
|
||||
|
||||
Checks if key `b` partially matches with key `a`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### a
|
||||
|
||||
readonly `unknown`[]
|
||||
|
||||
### b
|
||||
|
||||
readonly `unknown`[]
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: provideAngularQuery
|
||||
title: provideAngularQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function provideAngularQuery(queryClient): Provider[];
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/providers.ts:121](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L121)
|
||||
|
||||
Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
||||
|
||||
Allows configuring a `QueryClient`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### queryClient
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
A `QueryClient` instance.
|
||||
|
||||
## Returns
|
||||
|
||||
`Provider`[]
|
||||
|
||||
A set of providers to set up TanStack Query.
|
||||
|
||||
## See
|
||||
|
||||
https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
||||
|
||||
## Deprecated
|
||||
|
||||
Use `provideTanStackQuery` instead.
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
id: provideIsRestoring
|
||||
title: provideIsRestoring
|
||||
---
|
||||
|
||||
```ts
|
||||
function provideIsRestoring(isRestoring): Provider;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/inject-is-restoring.ts:48](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L48)
|
||||
|
||||
Registers a provider for the restore state read by `injectIsRestoring`. Wire this up wherever you drive a
|
||||
restore yourself — e.g. a persist-client integration — so `injectQuery` and friends can defer subscribing
|
||||
to their observer (avoiding a race with the restore) until the restore signal flips back to `false`.
|
||||
|
||||
## Parameters
|
||||
|
||||
### isRestoring
|
||||
|
||||
`Signal`\<`boolean`\>
|
||||
|
||||
A readonly `Signal<boolean>` that tracks the restore state.
|
||||
|
||||
## Returns
|
||||
|
||||
`Provider`
|
||||
|
||||
A provider for the `isRestoring` signal.
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
id: provideQueryClient
|
||||
title: provideQueryClient
|
||||
---
|
||||
|
||||
```ts
|
||||
function provideQueryClient(queryClient): Provider;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/providers.ts:22](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L22)
|
||||
|
||||
Usually [provideTanStackQuery](provideTanStackQuery.md) is used once to set up TanStack Query and the
|
||||
[`QueryClient`](https://tanstack.com/query/latest/docs/reference/QueryClient) for the entire application —
|
||||
it calls `provideQueryClient` internally. Use `provideQueryClient` directly to provide a different
|
||||
`QueryClient` instance for part of the application, or for unit testing.
|
||||
|
||||
## Parameters
|
||||
|
||||
### queryClient
|
||||
|
||||
A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`.
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md) | `InjectionToken`\<[`QueryClient`](../classes/QueryClient.md)\>
|
||||
|
||||
## Returns
|
||||
|
||||
`Provider`
|
||||
|
||||
A provider object that can be used to provide the `QueryClient` instance.
|
||||
|
||||
## Example
|
||||
|
||||
Providing a test-only `QueryClient` in a component test, without wiring up `provideTanStackQuery`'s other
|
||||
defaults:
|
||||
```ts
|
||||
TestBed.configureTestingModule({
|
||||
providers: [provideQueryClient(new QueryClient())],
|
||||
})
|
||||
```
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
id: provideTanStackQuery
|
||||
title: provideTanStackQuery
|
||||
---
|
||||
|
||||
```ts
|
||||
function provideTanStackQuery(queryClient, ...features): Provider[];
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/providers.ts:102](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L102)
|
||||
|
||||
Sets up providers necessary to enable TanStack Query functionality for Angular applications. Allows
|
||||
configuring a `QueryClient` and optional features such as developer tools.
|
||||
|
||||
## Parameters
|
||||
|
||||
### queryClient
|
||||
|
||||
A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`.
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md) | `InjectionToken`\<[`QueryClient`](../classes/QueryClient.md)\>
|
||||
|
||||
### features
|
||||
|
||||
...[`QueryFeatures`](../type-aliases/QueryFeatures.md)[]
|
||||
|
||||
Optional features to configure additional Query functionality.
|
||||
|
||||
## Returns
|
||||
|
||||
`Provider`[]
|
||||
|
||||
A set of providers to set up TanStack Query.
|
||||
|
||||
## See
|
||||
|
||||
- https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
||||
- withDevtools
|
||||
|
||||
## Examples
|
||||
|
||||
```ts
|
||||
import { provideTanStackQuery, QueryClient } from '@tanstack/angular-query-experimental'
|
||||
|
||||
bootstrapApplication(AppComponent, {
|
||||
providers: [provideTanStackQuery(new QueryClient())],
|
||||
})
|
||||
```
|
||||
|
||||
The same, in an `NgModule`-based application:
|
||||
```ts
|
||||
import { provideTanStackQuery, QueryClient } from '@tanstack/angular-query-experimental'
|
||||
|
||||
@NgModule({
|
||||
declarations: [AppComponent],
|
||||
imports: [BrowserModule],
|
||||
providers: [provideTanStackQuery(new QueryClient())],
|
||||
bootstrap: [AppComponent],
|
||||
})
|
||||
export class AppModule {}
|
||||
```
|
||||
|
||||
Enabling optional developer tools by adding `withDevtools` — by default, the tools are then loaded when
|
||||
your app is in development mode:
|
||||
```ts
|
||||
import {
|
||||
provideTanStackQuery,
|
||||
withDevtools,
|
||||
QueryClient,
|
||||
} from '@tanstack/angular-query-experimental'
|
||||
|
||||
bootstrapApplication(AppComponent, {
|
||||
providers: [provideTanStackQuery(new QueryClient(), withDevtools())],
|
||||
})
|
||||
```
|
||||
|
||||
Using an `InjectionToken` for the `QueryClient` — an advanced optimization that lets TanStack Query be
|
||||
absent from the main application bundle, useful for including it on lazy-loaded routes only while still
|
||||
sharing a `QueryClient`. This is a small optimization; for most applications it's preferable to provide
|
||||
the `QueryClient` in the main application config, as in the examples above:
|
||||
```ts
|
||||
export const MY_QUERY_CLIENT = new InjectionToken('', {
|
||||
factory: () => new QueryClient(),
|
||||
})
|
||||
|
||||
// In a lazy loaded route or lazy loaded component's providers array:
|
||||
providers: [provideTanStackQuery(MY_QUERY_CLIENT)]
|
||||
```
|
||||
38
docs/framework/angular/reference/functions/queryFeature.md
Normal file
38
docs/framework/angular/reference/functions/queryFeature.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: queryFeature
|
||||
title: queryFeature
|
||||
---
|
||||
|
||||
```ts
|
||||
function queryFeature<TFeatureKind>(kind, providers): QueryFeature<TFeatureKind>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/providers.ts:143](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L143)
|
||||
|
||||
Helper function to create an object that represents a Query feature.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TFeatureKind
|
||||
|
||||
`TFeatureKind` *extends* `"Devtools"` \| `"PersistQueryClient"`
|
||||
|
||||
## Parameters
|
||||
|
||||
### kind
|
||||
|
||||
`TFeatureKind`
|
||||
|
||||
The kind of feature, e.g. `'Devtools'`.
|
||||
|
||||
### providers
|
||||
|
||||
`Provider`[]
|
||||
|
||||
The Angular providers this feature contributes to `provideTanStackQuery`.
|
||||
|
||||
## Returns
|
||||
|
||||
[`QueryFeature`](../interfaces/QueryFeature.md)\<`TFeatureKind`\>
|
||||
|
||||
A Query feature.
|
||||
274
docs/framework/angular/reference/functions/queryOptions.md
Normal file
274
docs/framework/angular/reference/functions/queryOptions.md
Normal file
@@ -0,0 +1,274 @@
|
||||
---
|
||||
id: queryOptions
|
||||
title: queryOptions
|
||||
---
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/query-options.ts:151](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L151)
|
||||
|
||||
You can generally pass everything to `queryOptions` that you can also pass to `injectQuery`. These options
|
||||
can be shared across functions and imperative APIs such as `queryClient.fetchQuery`. `options.queryKey` is
|
||||
required and is the query key to generate options for.
|
||||
|
||||
This overload is selected when `initialData` is set, so the resulting `data` is never `undefined` (unless
|
||||
a `select` changes `TData` to include `undefined`).
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`DefinedInitialDataOptions`](../type-aliases/DefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
The [DefinedInitialDataOptions](../type-aliases/DefinedInitialDataOptions.md) to use — everything you can pass to `injectQuery`,
|
||||
with `initialData` set.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### See
|
||||
|
||||
- [injectQuery](injectQuery.md) to run a query with these options.
|
||||
- [The Query Options API](https://tkdodo.eu/blog/the-query-options-api) for more on this pattern.
|
||||
|
||||
### Example
|
||||
|
||||
```angular-ts
|
||||
import { queryOptions, injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const postsOptions = queryOptions({
|
||||
queryKey: ['posts'],
|
||||
queryFn: fetchPosts,
|
||||
initialData: [],
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'posts',
|
||||
template: `
|
||||
<!-- `postsQuery.data()` is never `undefined`, thanks to `initialData` — even if a refetch
|
||||
fails, so the list stays visible alongside the error. -->
|
||||
@if (postsQuery.isError()) {
|
||||
<span>Error: {{ postsQuery.error()?.message }}</span>
|
||||
}
|
||||
<ul>
|
||||
@for (post of postsQuery.data(); track post.id) {
|
||||
<li>{{ post.title }}</li>
|
||||
}
|
||||
</ul>
|
||||
`,
|
||||
})
|
||||
export class Posts {
|
||||
readonly postsQuery = injectQuery(() => postsOptions)
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/query-options.ts:200](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L200)
|
||||
|
||||
You can generally pass everything to `queryOptions` that you can also pass to `injectQuery`. These options
|
||||
can be shared across functions and imperative APIs such as `queryClient.fetchQuery`. `options.queryKey` is
|
||||
required and is the query key to generate options for.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`UnusedSkipTokenOptions`](../type-aliases/UnusedSkipTokenOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
The [UnusedSkipTokenOptions](../type-aliases/UnusedSkipTokenOptions.md) to use — everything you can pass to `injectQuery`.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### See
|
||||
|
||||
- [injectQuery](injectQuery.md) to run a query with these options.
|
||||
- [The Query Options API](https://tkdodo.eu/blog/the-query-options-api) for more on this pattern.
|
||||
|
||||
### Example
|
||||
|
||||
A parameterized factory, so the same options object can be reused per `id`:
|
||||
```angular-ts
|
||||
import { queryOptions, injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const postOptions = (id: string) =>
|
||||
queryOptions({
|
||||
queryKey: ['post', id],
|
||||
queryFn: () => fetchPost(id),
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'post',
|
||||
template: `
|
||||
@if (postQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (postQuery.isError()) {
|
||||
<span>Error: {{ postQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<h1>{{ postQuery.data().title }}</h1>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Post {
|
||||
readonly id = signal('1')
|
||||
readonly postQuery = injectQuery(() => postOptions(this.id()))
|
||||
}
|
||||
```
|
||||
|
||||
## Call Signature
|
||||
|
||||
```ts
|
||||
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/query-options.ts:281](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L281)
|
||||
|
||||
You can generally pass everything to `queryOptions` that you can also pass to `injectQuery`. These options
|
||||
can be shared across functions and imperative APIs such as `queryClient.fetchQuery`. `options.queryKey` is
|
||||
required and is the query key to generate options for.
|
||||
|
||||
### Type Parameters
|
||||
|
||||
#### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
#### TError
|
||||
|
||||
`TError` = `Error`
|
||||
|
||||
#### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
#### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* readonly `unknown`[] = readonly `unknown`[]
|
||||
|
||||
### Parameters
|
||||
|
||||
#### options
|
||||
|
||||
[`UndefinedInitialDataOptions`](../type-aliases/UndefinedInitialDataOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>
|
||||
|
||||
The [UndefinedInitialDataOptions](../type-aliases/UndefinedInitialDataOptions.md) to use — everything you can pass to `injectQuery`.
|
||||
|
||||
### Returns
|
||||
|
||||
The same options object, typed so that `queryKey` carries the inferred data type.
|
||||
|
||||
### See
|
||||
|
||||
- [injectQuery](injectQuery.md) to run a query with these options.
|
||||
- [The Query Options API](https://tkdodo.eu/blog/the-query-options-api) for more on this pattern.
|
||||
|
||||
### Remarks
|
||||
|
||||
This is the only overload that accepts `queryFn: skipToken`, shown below.
|
||||
|
||||
### Examples
|
||||
|
||||
A parameterized factory, so the same options object can be reused per `id`:
|
||||
```angular-ts
|
||||
import { queryOptions, injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const postOptions = (id: string) =>
|
||||
queryOptions({
|
||||
queryKey: ['post', id],
|
||||
queryFn: () => fetchPost(id),
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'post',
|
||||
template: `
|
||||
@if (postQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (postQuery.isError()) {
|
||||
<span>Error: {{ postQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<h1>{{ postQuery.data().title }}</h1>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Post {
|
||||
readonly id = signal('1')
|
||||
readonly postQuery = injectQuery(() => postOptions(this.id()))
|
||||
}
|
||||
```
|
||||
|
||||
A factory that disables the query, type safe, until `postId` is set:
|
||||
```angular-ts
|
||||
import { queryOptions, skipToken, injectQuery } from '@tanstack/angular-query-experimental'
|
||||
|
||||
export const postOptions = (postId: number | undefined) =>
|
||||
queryOptions({
|
||||
queryKey: ['post', postId],
|
||||
queryFn: postId != null ? () => fetchPost(postId) : skipToken,
|
||||
})
|
||||
|
||||
@Component({
|
||||
selector: 'post',
|
||||
template: `
|
||||
@if (postId() == null) {
|
||||
Select a post
|
||||
} @else if (postQuery.isPending()) {
|
||||
Loading...
|
||||
} @else if (postQuery.isError()) {
|
||||
<span>Error: {{ postQuery.error()?.message }}</span>
|
||||
} @else {
|
||||
<h1>{{ postQuery.data().title }}</h1>
|
||||
}
|
||||
`,
|
||||
})
|
||||
export class Post {
|
||||
readonly postId = signal<number | undefined>(undefined)
|
||||
readonly postQuery = injectQuery(() => postOptions(this.postId()))
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: replaceEqualDeep
|
||||
title: replaceEqualDeep
|
||||
---
|
||||
|
||||
```ts
|
||||
function replaceEqualDeep<T>(
|
||||
a,
|
||||
b,
|
||||
depth?): T;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:339](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L339)
|
||||
|
||||
This function returns `a` if `b` is deeply equal.
|
||||
If not, it will replace any deeply equal children of `b` with those of `a`.
|
||||
This can be used for structural sharing between JSON values for example.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### T
|
||||
|
||||
`T`
|
||||
|
||||
## Parameters
|
||||
|
||||
### a
|
||||
|
||||
`unknown`
|
||||
|
||||
### b
|
||||
|
||||
`T`
|
||||
|
||||
### depth?
|
||||
|
||||
`number`
|
||||
|
||||
## Returns
|
||||
|
||||
`T`
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
id: shouldThrowError
|
||||
title: shouldThrowError
|
||||
---
|
||||
|
||||
```ts
|
||||
function shouldThrowError<T>(throwOnError, params): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/utils.ts:576](https://github.com/TanStack/query/blob/main/packages/query-core/src/utils.ts#L576)
|
||||
|
||||
Resolves a `throwOnError` option to a boolean.
|
||||
If `throwOnError` is a function, it is called with `params` (e.g. the error and, depending on the caller,
|
||||
additional context such as the query or mutation) and its result is returned, allowing the throwing
|
||||
behavior to be decided per error. Otherwise, `throwOnError` itself is coerced to a boolean (`undefined`
|
||||
resolves to `false`).
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### T
|
||||
|
||||
`T` *extends* (...`args`) => `boolean`
|
||||
|
||||
## Parameters
|
||||
|
||||
### throwOnError
|
||||
|
||||
`boolean` | `T` | `undefined`
|
||||
|
||||
### params
|
||||
|
||||
`Parameters`\<`T`\>
|
||||
|
||||
## Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
const throwOnError =
|
||||
query.state.error && typeof options.throwOnError === 'function'
|
||||
? shouldThrowError(options.throwOnError, [query.state.error, query])
|
||||
: options.throwOnError
|
||||
```
|
||||
221
docs/framework/angular/reference/index.md
Normal file
221
docs/framework/angular/reference/index.md
Normal file
@@ -0,0 +1,221 @@
|
||||
---
|
||||
id: "@tanstack/angular-query-experimental"
|
||||
title: "@tanstack/angular-query-experimental"
|
||||
---
|
||||
|
||||
## Classes
|
||||
|
||||
- [CancelledError](classes/CancelledError.md)
|
||||
- [InfiniteQueryObserver](classes/InfiniteQueryObserver.md)
|
||||
- [Mutation](classes/Mutation.md)
|
||||
- [MutationCache](classes/MutationCache.md)
|
||||
- [MutationObserver](classes/MutationObserver.md)
|
||||
- [QueriesObserver](classes/QueriesObserver.md)
|
||||
- [Query](classes/Query.md)
|
||||
- [QueryCache](classes/QueryCache.md)
|
||||
- [QueryClient](classes/QueryClient.md)
|
||||
- [QueryObserver](classes/QueryObserver.md)
|
||||
|
||||
## Interfaces
|
||||
|
||||
- [BaseMutationNarrowing](interfaces/BaseMutationNarrowing.md)
|
||||
- [BaseQueryNarrowing](interfaces/BaseQueryNarrowing.md)
|
||||
- [CancelOptions](interfaces/CancelOptions.md)
|
||||
- [CreateBaseQueryOptions](interfaces/CreateBaseQueryOptions.md)
|
||||
- [CreateInfiniteQueryOptions](interfaces/CreateInfiniteQueryOptions.md)
|
||||
- [CreateMutationOptions](interfaces/CreateMutationOptions.md)
|
||||
- [CreateQueryOptions](interfaces/CreateQueryOptions.md)
|
||||
- [DefaultOptions](interfaces/DefaultOptions.md)
|
||||
- [DehydratedState](interfaces/DehydratedState.md)
|
||||
- [DehydrateOptions](interfaces/DehydrateOptions.md)
|
||||
- [~~EnsureQueryDataOptions~~](interfaces/EnsureQueryDataOptions.md)
|
||||
- [FetchNextPageOptions](interfaces/FetchNextPageOptions.md)
|
||||
- [FetchPreviousPageOptions](interfaces/FetchPreviousPageOptions.md)
|
||||
- [~~FetchQueryOptions~~](interfaces/FetchQueryOptions.md)
|
||||
- [FocusManager](interfaces/FocusManager.md)
|
||||
- [HydrateOptions](interfaces/HydrateOptions.md)
|
||||
- [InfiniteData](interfaces/InfiniteData.md)
|
||||
- [InfiniteQueryObserverBaseResult](interfaces/InfiniteQueryObserverBaseResult.md)
|
||||
- [InfiniteQueryObserverLoadingErrorResult](interfaces/InfiniteQueryObserverLoadingErrorResult.md)
|
||||
- [InfiniteQueryObserverLoadingResult](interfaces/InfiniteQueryObserverLoadingResult.md)
|
||||
- [InfiniteQueryObserverOptions](interfaces/InfiniteQueryObserverOptions.md)
|
||||
- [InfiniteQueryObserverPendingResult](interfaces/InfiniteQueryObserverPendingResult.md)
|
||||
- [InfiniteQueryObserverPlaceholderResult](interfaces/InfiniteQueryObserverPlaceholderResult.md)
|
||||
- [InfiniteQueryObserverRefetchErrorResult](interfaces/InfiniteQueryObserverRefetchErrorResult.md)
|
||||
- [InfiniteQueryObserverSuccessResult](interfaces/InfiniteQueryObserverSuccessResult.md)
|
||||
- [InfiniteQueryPageParamsOptions](interfaces/InfiniteQueryPageParamsOptions.md)
|
||||
- [InitialPageParam](interfaces/InitialPageParam.md)
|
||||
- [InjectInfiniteQueryOptions](interfaces/InjectInfiniteQueryOptions.md)
|
||||
- [InjectIsFetchingOptions](interfaces/InjectIsFetchingOptions.md)
|
||||
- [InjectIsMutatingOptions](interfaces/InjectIsMutatingOptions.md)
|
||||
- [InjectMutationOptions](interfaces/InjectMutationOptions.md)
|
||||
- [InjectMutationStateOptions](interfaces/InjectMutationStateOptions.md)
|
||||
- [InjectQueryOptions](interfaces/InjectQueryOptions.md)
|
||||
- [InvalidateOptions](interfaces/InvalidateOptions.md)
|
||||
- [InvalidateQueryFilters](interfaces/InvalidateQueryFilters.md)
|
||||
- [MutateOptions](interfaces/MutateOptions.md)
|
||||
- [MutationCacheConfig](interfaces/MutationCacheConfig.md)
|
||||
- [MutationFilters](interfaces/MutationFilters.md)
|
||||
- [MutationObserverBaseResult](interfaces/MutationObserverBaseResult.md)
|
||||
- [MutationObserverErrorResult](interfaces/MutationObserverErrorResult.md)
|
||||
- [MutationObserverIdleResult](interfaces/MutationObserverIdleResult.md)
|
||||
- [MutationObserverLoadingResult](interfaces/MutationObserverLoadingResult.md)
|
||||
- [MutationObserverOptions](interfaces/MutationObserverOptions.md)
|
||||
- [MutationObserverSuccessResult](interfaces/MutationObserverSuccessResult.md)
|
||||
- [MutationOptions](interfaces/MutationOptions.md)
|
||||
- [MutationState](interfaces/MutationState.md)
|
||||
- [NotifyEvent](interfaces/NotifyEvent.md)
|
||||
- [OnlineManager](interfaces/OnlineManager.md)
|
||||
- [QueriesObserverOptions](interfaces/QueriesObserverOptions.md)
|
||||
- [QueryCacheConfig](interfaces/QueryCacheConfig.md)
|
||||
- [QueryClientConfig](interfaces/QueryClientConfig.md)
|
||||
- [QueryExecuteOptions](interfaces/QueryExecuteOptions.md)
|
||||
- [QueryFeature](interfaces/QueryFeature.md)
|
||||
- [QueryFilters](interfaces/QueryFilters.md)
|
||||
- [QueryObserverBaseResult](interfaces/QueryObserverBaseResult.md)
|
||||
- [QueryObserverLoadingErrorResult](interfaces/QueryObserverLoadingErrorResult.md)
|
||||
- [QueryObserverLoadingResult](interfaces/QueryObserverLoadingResult.md)
|
||||
- [QueryObserverOptions](interfaces/QueryObserverOptions.md)
|
||||
- [QueryObserverPendingResult](interfaces/QueryObserverPendingResult.md)
|
||||
- [QueryObserverPlaceholderResult](interfaces/QueryObserverPlaceholderResult.md)
|
||||
- [QueryObserverRefetchErrorResult](interfaces/QueryObserverRefetchErrorResult.md)
|
||||
- [QueryObserverSuccessResult](interfaces/QueryObserverSuccessResult.md)
|
||||
- [QueryOptions](interfaces/QueryOptions.md)
|
||||
- [QueryState](interfaces/QueryState.md)
|
||||
- [RefetchOptions](interfaces/RefetchOptions.md)
|
||||
- [RefetchQueryFilters](interfaces/RefetchQueryFilters.md)
|
||||
- [Register](interfaces/Register.md)
|
||||
- [ResetOptions](interfaces/ResetOptions.md)
|
||||
- [ResultOptions](interfaces/ResultOptions.md)
|
||||
- [SetDataOptions](interfaces/SetDataOptions.md)
|
||||
- [TimeoutManager](interfaces/TimeoutManager.md)
|
||||
|
||||
## Type Aliases
|
||||
|
||||
- [AnyDataTag](type-aliases/AnyDataTag.md)
|
||||
- [CreateBaseMutationResult](type-aliases/CreateBaseMutationResult.md)
|
||||
- [CreateBaseQueryResult](type-aliases/CreateBaseQueryResult.md)
|
||||
- [CreateInfiniteQueryResult](type-aliases/CreateInfiniteQueryResult.md)
|
||||
- [CreateMutateAsyncFunction](type-aliases/CreateMutateAsyncFunction.md)
|
||||
- [CreateMutateFunction](type-aliases/CreateMutateFunction.md)
|
||||
- [CreateMutationResult](type-aliases/CreateMutationResult.md)
|
||||
- [CreateQueryResult](type-aliases/CreateQueryResult.md)
|
||||
- [DataTag](type-aliases/DataTag.md)
|
||||
- [dataTagErrorSymbol](type-aliases/dataTagErrorSymbol.md)
|
||||
- [dataTagSymbol](type-aliases/dataTagSymbol.md)
|
||||
- [DefaultedInfiniteQueryObserverOptions](type-aliases/DefaultedInfiniteQueryObserverOptions.md)
|
||||
- [DefaultedQueryObserverOptions](type-aliases/DefaultedQueryObserverOptions.md)
|
||||
- [DefaultError](type-aliases/DefaultError.md)
|
||||
- [DefinedCreateInfiniteQueryResult](type-aliases/DefinedCreateInfiniteQueryResult.md)
|
||||
- [DefinedCreateQueryResult](type-aliases/DefinedCreateQueryResult.md)
|
||||
- [DefinedInfiniteQueryObserverResult](type-aliases/DefinedInfiniteQueryObserverResult.md)
|
||||
- [DefinedInitialDataInfiniteOptions](type-aliases/DefinedInitialDataInfiniteOptions.md)
|
||||
- [DefinedInitialDataOptions](type-aliases/DefinedInitialDataOptions.md)
|
||||
- [DefinedQueryObserverResult](type-aliases/DefinedQueryObserverResult.md)
|
||||
- [DevtoolsFeature](type-aliases/DevtoolsFeature.md)
|
||||
- [DistributiveOmit](type-aliases/DistributiveOmit.md)
|
||||
- [~~EnsureInfiniteQueryDataOptions~~](type-aliases/EnsureInfiniteQueryDataOptions.md)
|
||||
- [~~FetchInfiniteQueryOptions~~](type-aliases/FetchInfiniteQueryOptions.md)
|
||||
- [FetchStatus](type-aliases/FetchStatus.md)
|
||||
- [GetNextPageParamFunction](type-aliases/GetNextPageParamFunction.md)
|
||||
- [GetPreviousPageParamFunction](type-aliases/GetPreviousPageParamFunction.md)
|
||||
- [InferDataFromTag](type-aliases/InferDataFromTag.md)
|
||||
- [InferErrorFromTag](type-aliases/InferErrorFromTag.md)
|
||||
- [InfiniteQueryExecuteOptions](type-aliases/InfiniteQueryExecuteOptions.md)
|
||||
- [InfiniteQueryObserverResult](type-aliases/InfiniteQueryObserverResult.md)
|
||||
- [InitialDataFunction](type-aliases/InitialDataFunction.md)
|
||||
- [ManagedTimerId](type-aliases/ManagedTimerId.md)
|
||||
- [MutateFunction](type-aliases/MutateFunction.md)
|
||||
- [MutateFunctionRest](type-aliases/MutateFunctionRest.md)
|
||||
- [MutationCacheNotifyEvent](type-aliases/MutationCacheNotifyEvent.md)
|
||||
- [MutationFunction](type-aliases/MutationFunction.md)
|
||||
- [MutationFunctionContext](type-aliases/MutationFunctionContext.md)
|
||||
- [MutationKey](type-aliases/MutationKey.md)
|
||||
- [MutationMeta](type-aliases/MutationMeta.md)
|
||||
- [MutationObserverResult](type-aliases/MutationObserverResult.md)
|
||||
- [MutationScope](type-aliases/MutationScope.md)
|
||||
- [MutationStatus](type-aliases/MutationStatus.md)
|
||||
- [NetworkMode](type-aliases/NetworkMode.md)
|
||||
- [NonUndefinedGuard](type-aliases/NonUndefinedGuard.md)
|
||||
- [NotifyEventType](type-aliases/NotifyEventType.md)
|
||||
- [NotifyOnChangeProps](type-aliases/NotifyOnChangeProps.md)
|
||||
- [OmitKeyof](type-aliases/OmitKeyof.md)
|
||||
- [Override](type-aliases/Override.md)
|
||||
- [PersistQueryClientFeature](type-aliases/PersistQueryClientFeature.md)
|
||||
- [PlaceholderDataFunction](type-aliases/PlaceholderDataFunction.md)
|
||||
- [QueriesOptions](type-aliases/QueriesOptions.md)
|
||||
- [QueriesPlaceholderDataFunction](type-aliases/QueriesPlaceholderDataFunction.md)
|
||||
- [QueriesResults](type-aliases/QueriesResults.md)
|
||||
- [QueryBooleanOption](type-aliases/QueryBooleanOption.md)
|
||||
- [QueryCacheNotifyEvent](type-aliases/QueryCacheNotifyEvent.md)
|
||||
- [QueryFeatures](type-aliases/QueryFeatures.md)
|
||||
- [QueryFunction](type-aliases/QueryFunction.md)
|
||||
- [QueryFunctionContext](type-aliases/QueryFunctionContext.md)
|
||||
- [QueryKey](type-aliases/QueryKey.md)
|
||||
- [QueryKeyHashFunction](type-aliases/QueryKeyHashFunction.md)
|
||||
- [QueryKeyWithDataTag](type-aliases/QueryKeyWithDataTag.md)
|
||||
- [QueryMeta](type-aliases/QueryMeta.md)
|
||||
- [QueryObserverResult](type-aliases/QueryObserverResult.md)
|
||||
- [QueryPersister](type-aliases/QueryPersister.md)
|
||||
- [QueryStatus](type-aliases/QueryStatus.md)
|
||||
- [SkipToken](type-aliases/SkipToken.md)
|
||||
- [StaleTime](type-aliases/StaleTime.md)
|
||||
- [StaleTimeFunction](type-aliases/StaleTimeFunction.md)
|
||||
- [ThrowOnError](type-aliases/ThrowOnError.md)
|
||||
- [TimeoutCallback](type-aliases/TimeoutCallback.md)
|
||||
- [TimeoutProvider](type-aliases/TimeoutProvider.md)
|
||||
- [UndefinedInitialDataInfiniteOptions](type-aliases/UndefinedInitialDataInfiniteOptions.md)
|
||||
- [UndefinedInitialDataOptions](type-aliases/UndefinedInitialDataOptions.md)
|
||||
- [UnsetMarker](type-aliases/UnsetMarker.md)
|
||||
- [UnusedSkipTokenInfiniteOptions](type-aliases/UnusedSkipTokenInfiniteOptions.md)
|
||||
- [UnusedSkipTokenOptions](type-aliases/UnusedSkipTokenOptions.md)
|
||||
- [Updater](type-aliases/Updater.md)
|
||||
- [WithRequired](type-aliases/WithRequired.md)
|
||||
|
||||
## Variables
|
||||
|
||||
- [dataTagErrorSymbol](variables/dataTagErrorSymbol.md)
|
||||
- [dataTagSymbol](variables/dataTagSymbol.md)
|
||||
- [defaultScheduler](variables/defaultScheduler.md)
|
||||
- [environmentManager](variables/environmentManager.md)
|
||||
- [focusManager](variables/focusManager.md)
|
||||
- [~~isServer~~](variables/isServer.md)
|
||||
- [notifyManager](variables/notifyManager.md)
|
||||
- [onlineManager](variables/onlineManager.md)
|
||||
- [skipToken](variables/skipToken.md)
|
||||
- [timeoutManager](variables/timeoutManager.md)
|
||||
- [unsetMarker](variables/unsetMarker.md)
|
||||
|
||||
## Functions
|
||||
|
||||
- [defaultShouldDehydrateMutation](functions/defaultShouldDehydrateMutation.md)
|
||||
- [defaultShouldDehydrateQuery](functions/defaultShouldDehydrateQuery.md)
|
||||
- [dehydrate](functions/dehydrate.md)
|
||||
- [dehydrateQuery](functions/dehydrateQuery.md)
|
||||
- [experimental\_streamedQuery](functions/experimental_streamedQuery.md)
|
||||
- [hashKey](functions/hashKey.md)
|
||||
- [hydrate](functions/hydrate.md)
|
||||
- [infiniteQueryOptions](functions/infiniteQueryOptions.md)
|
||||
- [injectInfiniteQuery](functions/injectInfiniteQuery.md)
|
||||
- [injectIsFetching](functions/injectIsFetching.md)
|
||||
- [injectIsMutating](functions/injectIsMutating.md)
|
||||
- [injectIsRestoring](functions/injectIsRestoring.md)
|
||||
- [injectMutation](functions/injectMutation.md)
|
||||
- [injectMutationState](functions/injectMutationState.md)
|
||||
- [injectQuery](functions/injectQuery.md)
|
||||
- [~~injectQueryClient~~](functions/injectQueryClient.md)
|
||||
- [~~isCancelledError~~](functions/isCancelledError.md)
|
||||
- [keepPreviousData](functions/keepPreviousData.md)
|
||||
- [matchMutation](functions/matchMutation.md)
|
||||
- [matchQuery](functions/matchQuery.md)
|
||||
- [mutationOptions](functions/mutationOptions.md)
|
||||
- [noop](functions/noop.md)
|
||||
- [partialMatchKey](functions/partialMatchKey.md)
|
||||
- [~~provideAngularQuery~~](functions/provideAngularQuery.md)
|
||||
- [provideIsRestoring](functions/provideIsRestoring.md)
|
||||
- [provideQueryClient](functions/provideQueryClient.md)
|
||||
- [provideTanStackQuery](functions/provideTanStackQuery.md)
|
||||
- [queryFeature](functions/queryFeature.md)
|
||||
- [queryOptions](functions/queryOptions.md)
|
||||
- [replaceEqualDeep](functions/replaceEqualDeep.md)
|
||||
- [shouldThrowError](functions/shouldThrowError.md)
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
id: BaseMutationNarrowing
|
||||
title: BaseMutationNarrowing
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:328](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L328)
|
||||
|
||||
The `isSuccess`/`isError`/`isPending`/`isIdle` methods on a mutation result. Each is both a `Signal`
|
||||
(its current boolean value is read reactively without calling it) and a type-guard function you can
|
||||
call — `if (mutation.isSuccess())` — so that `mutation.data` narrows away `undefined` inside the branch.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
The type your mutation function resolves to.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your mutation function may throw.
|
||||
|
||||
### TVariables
|
||||
|
||||
`TVariables` = `unknown`
|
||||
|
||||
The type of the variable passed to `mutate`/`mutateAsync`.
|
||||
|
||||
### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
||||
their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
||||
|
||||
## Properties
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, Override<MutationObserverErrorResult<TData, TError, TVariables, TOnMutateResult>, { mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult> }>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:351](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L351)
|
||||
|
||||
***
|
||||
|
||||
### isIdle
|
||||
|
||||
```ts
|
||||
isIdle: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, Override<MutationObserverIdleResult<TData, TError, TVariables, TOnMutateResult>, { mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult> }>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:385](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L385)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, Override<MutationObserverLoadingResult<TData, TError, TVariables, TOnMutateResult>, { mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult> }>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:368](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L368)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: SignalFunction<(this) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, Override<MutationObserverSuccessResult<TData, TError, TVariables, TOnMutateResult>, { mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult> }> & { mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult> }>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:334](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L334)
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
id: BaseQueryNarrowing
|
||||
title: BaseQueryNarrowing
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:83](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L83)
|
||||
|
||||
The `isSuccess`/`isError`/`isPending` methods on a query result. Unlike `react-query`'s derived booleans,
|
||||
these are type-guard methods you call — `if (query.isSuccess())` — so that `query.data` narrows away
|
||||
`undefined` inside the branch, the same way `status` narrowing works on the plain object `react-query`
|
||||
returns.
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
The type `data` ends up as after `select` runs.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your `queryFn` may throw.
|
||||
|
||||
## Properties
|
||||
|
||||
### isError()
|
||||
|
||||
```ts
|
||||
isError: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"error", TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:91](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L91)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### this
|
||||
|
||||
[`CreateBaseQueryResult`](../type-aliases/CreateBaseQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"error", TData, TError>>`
|
||||
|
||||
***
|
||||
|
||||
### isPending()
|
||||
|
||||
```ts
|
||||
isPending: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"pending", TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:98](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L98)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### this
|
||||
|
||||
[`CreateBaseQueryResult`](../type-aliases/CreateBaseQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"pending", TData, TError>>`
|
||||
|
||||
***
|
||||
|
||||
### isSuccess()
|
||||
|
||||
```ts
|
||||
isSuccess: (this) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"success", TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:84](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L84)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### this
|
||||
|
||||
[`CreateBaseQueryResult`](../type-aliases/CreateBaseQueryResult.md)\<`TData`, `TError`\>
|
||||
|
||||
#### Returns
|
||||
|
||||
`this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<"success", TData, TError>>`
|
||||
26
docs/framework/angular/reference/interfaces/CancelOptions.md
Normal file
26
docs/framework/angular/reference/interfaces/CancelOptions.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
id: CancelOptions
|
||||
title: CancelOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1521](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1521)
|
||||
|
||||
## Properties
|
||||
|
||||
### revert?
|
||||
|
||||
```ts
|
||||
optional revert: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1522](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1522)
|
||||
|
||||
***
|
||||
|
||||
### silent?
|
||||
|
||||
```ts
|
||||
optional silent: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1523](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1523)
|
||||
@@ -0,0 +1,636 @@
|
||||
---
|
||||
id: CreateBaseQueryOptions
|
||||
title: CreateBaseQueryOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:34](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L34)
|
||||
|
||||
The options shared across `angular-query-experimental`'s query functions. Extends
|
||||
[QueryObserverOptions](QueryObserverOptions.md) from `@tanstack/query-core` as-is — unlike `react-query`,
|
||||
`angular-query-experimental` has no extra framework-specific option here.
|
||||
|
||||
## Extends
|
||||
|
||||
- [`QueryObserverOptions`](QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
The type your `queryFn` resolves to.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your `queryFn` may throw.
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
The type `data` ends up as after `select` runs. Defaults to `TQueryFnData` when no
|
||||
`select` is used.
|
||||
|
||||
### TQueryData
|
||||
|
||||
`TQueryData` = `TQueryFnData`
|
||||
|
||||
The type of the data actually held in the query cache — the input to `select` and
|
||||
`placeholderData`. Defaults to, and is usually the same as, `TQueryFnData`.
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
The type of your `queryKey`.
|
||||
|
||||
## Properties
|
||||
|
||||
### enabled?
|
||||
|
||||
```ts
|
||||
optional enabled: QueryBooleanOption<TQueryFnData, TError, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:398](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L398)
|
||||
|
||||
Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
||||
To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
||||
Accepts a boolean or function that returns a boolean.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`enabled`](QueryObserverOptions.md#enabled)
|
||||
|
||||
***
|
||||
|
||||
### gcTime?
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`gcTime`](QueryObserverOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### initialData?
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| TQueryData
|
||||
| InitialDataFunction<TQueryData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`initialData`](QueryObserverOptions.md#initialdata)
|
||||
|
||||
***
|
||||
|
||||
### initialDataUpdatedAt?
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`initialDataUpdatedAt`](QueryObserverOptions.md#initialdataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### maxPages?
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`maxPages`](QueryObserverOptions.md#maxpages)
|
||||
|
||||
***
|
||||
|
||||
### meta?
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`meta`](QueryObserverOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### networkMode?
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`networkMode`](QueryObserverOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### notifyOnChangeProps?
|
||||
|
||||
```ts
|
||||
optional notifyOnChangeProps: NotifyOnChangeProps;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:484](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L484)
|
||||
|
||||
If set, the component will only re-render if any of the listed properties change.
|
||||
When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
||||
When set to `'all'`, the component will re-render whenever a query is updated.
|
||||
When set to a function, the function will be executed to compute the list of properties.
|
||||
|
||||
Defaults to `undefined`, in which case property access is tracked automatically, and the
|
||||
component only re-renders when one of the tracked properties changes.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`notifyOnChangeProps`](QueryObserverOptions.md#notifyonchangeprops)
|
||||
|
||||
***
|
||||
|
||||
### persister()?
|
||||
|
||||
```ts
|
||||
optional persister: (queryFn, context, query) => TQueryFnData | Promise<TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### queryFn
|
||||
|
||||
[`QueryFunction`](../type-aliases/QueryFunction.md)\<`TQueryFnData`, `NoInfer`\<`TQueryKey`\>, `never`\>
|
||||
|
||||
##### context
|
||||
|
||||
###### client
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
###### direction?
|
||||
|
||||
`unknown`
|
||||
|
||||
**Deprecated**
|
||||
|
||||
if you want access to the direction, you can add it to the pageParam
|
||||
|
||||
###### meta
|
||||
|
||||
`Record`\<`string`, `unknown`\> \| `undefined`
|
||||
|
||||
###### pageParam?
|
||||
|
||||
`unknown`
|
||||
|
||||
###### queryKey
|
||||
|
||||
`NoInfer`\<`TQueryKey`\>
|
||||
|
||||
###### signal
|
||||
|
||||
`AbortSignal`
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](../classes/Query.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`TQueryFnData` \| `Promise`\<`TQueryFnData`\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`persister`](QueryObserverOptions.md#persister)
|
||||
|
||||
***
|
||||
|
||||
### placeholderData?
|
||||
|
||||
```ts
|
||||
optional placeholderData:
|
||||
| NonFunctionGuard<TQueryData>
|
||||
| PlaceholderDataFunction<NonFunctionGuard<TQueryData>, TError, NonFunctionGuard<TQueryData>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:511](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L511)
|
||||
|
||||
If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`placeholderData`](QueryObserverOptions.md#placeholderdata)
|
||||
|
||||
***
|
||||
|
||||
### queryFn?
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, never>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryFn`](QueryObserverOptions.md#queryfn)
|
||||
|
||||
***
|
||||
|
||||
### queryHash?
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryHash`](QueryObserverOptions.md#queryhash)
|
||||
|
||||
***
|
||||
|
||||
### queryKey
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryKey`](QueryObserverOptions.md#querykey)
|
||||
|
||||
***
|
||||
|
||||
### queryKeyHashFn?
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryKeyHashFn`](QueryObserverOptions.md#querykeyhashfn)
|
||||
|
||||
***
|
||||
|
||||
### refetchInterval?
|
||||
|
||||
```ts
|
||||
optional refetchInterval: number | false | (query) => number | false | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:414](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L414)
|
||||
|
||||
If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
||||
If set to a function, the function will be executed with the latest data and query to compute a frequency
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchInterval`](QueryObserverOptions.md#refetchinterval)
|
||||
|
||||
***
|
||||
|
||||
### refetchIntervalInBackground?
|
||||
|
||||
```ts
|
||||
optional refetchIntervalInBackground: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:425](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L425)
|
||||
|
||||
If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchIntervalInBackground`](QueryObserverOptions.md#refetchintervalinbackground)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnMount?
|
||||
|
||||
```ts
|
||||
optional refetchOnMount: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:462](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L462)
|
||||
|
||||
If set to `true`, the query will refetch on mount if the data is stale.
|
||||
If set to `false`, will disable additional instances of a query to trigger background refetch.
|
||||
If set to `'always'`, the query will always refetch on mount (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnMount`](QueryObserverOptions.md#refetchonmount)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnReconnect?
|
||||
|
||||
```ts
|
||||
optional refetchOnReconnect: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:448](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L448)
|
||||
|
||||
If set to `true`, the query will refetch on reconnect if the data is stale.
|
||||
If set to `false`, the query will not refetch on reconnect.
|
||||
If set to `'always'`, the query will always refetch on reconnect (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true` unless `networkMode` is `'always'`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnReconnect`](QueryObserverOptions.md#refetchonreconnect)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnWindowFocus?
|
||||
|
||||
```ts
|
||||
optional refetchOnWindowFocus: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:434](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L434)
|
||||
|
||||
If set to `true`, the query will refetch on window focus if the data is stale.
|
||||
If set to `false`, the query will not refetch on window focus.
|
||||
If set to `'always'`, the query will always refetch on window focus (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnWindowFocus`](QueryObserverOptions.md#refetchonwindowfocus)
|
||||
|
||||
***
|
||||
|
||||
### retry?
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retry`](QueryObserverOptions.md#retry)
|
||||
|
||||
***
|
||||
|
||||
### retryDelay?
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retryDelay`](QueryObserverOptions.md#retrydelay)
|
||||
|
||||
***
|
||||
|
||||
### retryOnMount?
|
||||
|
||||
```ts
|
||||
optional retryOnMount: QueryBooleanOption<TQueryFnData, TError, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:474](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L474)
|
||||
|
||||
If set to `false`, the query will not be retried on mount if it contains an error.
|
||||
If set to a function, the function will be executed with the query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retryOnMount`](QueryObserverOptions.md#retryonmount)
|
||||
|
||||
***
|
||||
|
||||
### select()?
|
||||
|
||||
```ts
|
||||
optional select: (data) => TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:500](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L500)
|
||||
|
||||
This option can be used to transform or select a part of the data returned by the query function. It affects
|
||||
the returned `data` value, but does not affect what gets stored in the query cache.
|
||||
The `select` function will only run if `data` changed, or if the reference to the `select` function itself
|
||||
changes. To optimize, memoize the function so its reference stays stable across calls.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
`TQueryData`
|
||||
|
||||
#### Returns
|
||||
|
||||
`TData`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`select`](QueryObserverOptions.md#select)
|
||||
|
||||
***
|
||||
|
||||
### staleTime?
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:407](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L407)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If set to `Infinity`, the data will never be considered stale.
|
||||
If set to `'static'`, the data will never be considered stale.
|
||||
If set to a function, the function will be executed with the query to compute a `staleTime`.
|
||||
|
||||
Defaults to `0`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`staleTime`](QueryObserverOptions.md#staletime)
|
||||
|
||||
***
|
||||
|
||||
### structuralSharing?
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`structuralSharing`](QueryObserverOptions.md#structuralsharing)
|
||||
|
||||
***
|
||||
|
||||
### suspense?
|
||||
|
||||
```ts
|
||||
optional suspense: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:507](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L507)
|
||||
|
||||
If set to `true`, the query will suspend when `status === 'pending'`
|
||||
and throw errors when `status === 'error'`.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`suspense`](QueryObserverOptions.md#suspense)
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:493](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L493)
|
||||
|
||||
Whether errors should be thrown instead of setting the `error` property.
|
||||
If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
||||
If set to `false` and `suspense` is `false`, errors are returned as state.
|
||||
If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`throwOnError`](QueryObserverOptions.md#throwonerror)
|
||||
@@ -0,0 +1,666 @@
|
||||
---
|
||||
id: CreateInfiniteQueryOptions
|
||||
title: CreateInfiniteQueryOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:121](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L121)
|
||||
|
||||
The options accepted by `injectInfiniteQuery`. Same as [CreateBaseQueryOptions](CreateBaseQueryOptions.md), minus `suspense` —
|
||||
which `angular-query-experimental` doesn't support, unlike `react-query` — extends
|
||||
[InfiniteQueryObserverOptions](InfiniteQueryObserverOptions.md) from `@tanstack/query-core` for the infinite-query-specific options
|
||||
(`getNextPageParam`, `initialPageParam`, etc.).
|
||||
|
||||
## Extends
|
||||
|
||||
- [`OmitKeyof`](../type-aliases/OmitKeyof.md)\<[`InfiniteQueryObserverOptions`](InfiniteQueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>, `"suspense"`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
The type of a single page, as your `queryFn` resolves it.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your `queryFn` may throw.
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
The type `data` ends up as after `select` runs. Defaults to `TQueryFnData` here, though
|
||||
`injectInfiniteQuery` itself defaults it to `InfiniteData<TQueryFnData>` — the shape `data` actually has
|
||||
when no `select` is used.
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
The type of your `queryKey`.
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
The type of the parameter passed to `queryFn` to fetch a given page.
|
||||
|
||||
## Properties
|
||||
|
||||
### enabled?
|
||||
|
||||
```ts
|
||||
optional enabled: QueryBooleanOption<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:398](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L398)
|
||||
|
||||
Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
||||
To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
||||
Accepts a boolean or function that returns a boolean.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.enabled
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### gcTime?
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`gcTime`](QueryOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### getNextPageParam
|
||||
|
||||
```ts
|
||||
getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:365](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L365)
|
||||
|
||||
This function can be set to automatically get the next cursor for infinite queries.
|
||||
The result will also be used to determine the value of `hasNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.getNextPageParam
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### getPreviousPageParam?
|
||||
|
||||
```ts
|
||||
optional getPreviousPageParam: GetPreviousPageParamFunction<TPageParam, TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:360](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L360)
|
||||
|
||||
This function can be set to automatically get the previous cursor for infinite queries.
|
||||
The result will also be used to determine the value of `hasPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.getPreviousPageParam
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### initialData?
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| InfiniteData<TQueryFnData, TPageParam>
|
||||
| InitialDataFunction<InfiniteData<TQueryFnData, TPageParam>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.initialData
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### initialDataUpdatedAt?
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.initialDataUpdatedAt
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### initialPageParam
|
||||
|
||||
```ts
|
||||
initialPageParam: TPageParam;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:349](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L349)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.initialPageParam
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### maxPages?
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`maxPages`](QueryOptions.md#maxpages)
|
||||
|
||||
***
|
||||
|
||||
### meta?
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`meta`](QueryOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### networkMode?
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`networkMode`](QueryOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### notifyOnChangeProps?
|
||||
|
||||
```ts
|
||||
optional notifyOnChangeProps: NotifyOnChangeProps;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:484](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L484)
|
||||
|
||||
If set, the component will only re-render if any of the listed properties change.
|
||||
When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
||||
When set to `'all'`, the component will re-render whenever a query is updated.
|
||||
When set to a function, the function will be executed to compute the list of properties.
|
||||
|
||||
Defaults to `undefined`, in which case property access is tracked automatically, and the
|
||||
component only re-renders when one of the tracked properties changes.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`notifyOnChangeProps`](QueryObserverOptions.md#notifyonchangeprops)
|
||||
|
||||
***
|
||||
|
||||
### persister?
|
||||
|
||||
```ts
|
||||
optional persister: QueryPersister<TQueryFnData, NoInfer<TQueryKey>, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.persister
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### placeholderData?
|
||||
|
||||
```ts
|
||||
optional placeholderData:
|
||||
| InfiniteData<TQueryFnData, TPageParam>
|
||||
| PlaceholderDataFunction<InfiniteData<TQueryFnData, TPageParam>, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:511](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L511)
|
||||
|
||||
If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.placeholderData
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryFn?
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryHash?
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`queryHash`](QueryOptions.md#queryhash)
|
||||
|
||||
***
|
||||
|
||||
### queryKey
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryKey
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryKeyHashFn?
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryKeyHashFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchInterval?
|
||||
|
||||
```ts
|
||||
optional refetchInterval: number | false | (query) => number | false | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:414](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L414)
|
||||
|
||||
If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
||||
If set to a function, the function will be executed with the latest data and query to compute a frequency
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchInterval
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchIntervalInBackground?
|
||||
|
||||
```ts
|
||||
optional refetchIntervalInBackground: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:425](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L425)
|
||||
|
||||
If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchIntervalInBackground`](QueryObserverOptions.md#refetchintervalinbackground)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnMount?
|
||||
|
||||
```ts
|
||||
optional refetchOnMount: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:462](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L462)
|
||||
|
||||
If set to `true`, the query will refetch on mount if the data is stale.
|
||||
If set to `false`, will disable additional instances of a query to trigger background refetch.
|
||||
If set to `'always'`, the query will always refetch on mount (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnMount
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchOnReconnect?
|
||||
|
||||
```ts
|
||||
optional refetchOnReconnect: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:448](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L448)
|
||||
|
||||
If set to `true`, the query will refetch on reconnect if the data is stale.
|
||||
If set to `false`, the query will not refetch on reconnect.
|
||||
If set to `'always'`, the query will always refetch on reconnect (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true` unless `networkMode` is `'always'`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnReconnect
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchOnWindowFocus?
|
||||
|
||||
```ts
|
||||
optional refetchOnWindowFocus: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:434](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L434)
|
||||
|
||||
If set to `true`, the query will refetch on window focus if the data is stale.
|
||||
If set to `false`, the query will not refetch on window focus.
|
||||
If set to `'always'`, the query will always refetch on window focus (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnWindowFocus
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retry?
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retry
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retryDelay?
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retryDelay
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retryOnMount?
|
||||
|
||||
```ts
|
||||
optional retryOnMount: QueryBooleanOption<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:474](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L474)
|
||||
|
||||
If set to `false`, the query will not be retried on mount if it contains an error.
|
||||
If set to a function, the function will be executed with the query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retryOnMount
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### select()?
|
||||
|
||||
```ts
|
||||
optional select: (data) => TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:500](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L500)
|
||||
|
||||
This option can be used to transform or select a part of the data returned by the query function. It affects
|
||||
the returned `data` value, but does not affect what gets stored in the query cache.
|
||||
The `select` function will only run if `data` changed, or if the reference to the `select` function itself
|
||||
changes. To optimize, memoize the function so its reference stays stable across calls.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
[`InfiniteData`](InfiniteData.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`TData`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.select
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### staleTime?
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:407](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L407)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If set to `Infinity`, the data will never be considered stale.
|
||||
If set to `'static'`, the data will never be considered stale.
|
||||
If set to a function, the function will be executed with the query to compute a `staleTime`.
|
||||
|
||||
Defaults to `0`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.staleTime
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### structuralSharing?
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.structuralSharing
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: ThrowOnError<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:493](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L493)
|
||||
|
||||
Whether errors should be thrown instead of setting the `error` property.
|
||||
If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
||||
If set to `false` and `suspense` is `false`, errors are returned as state.
|
||||
If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.throwOnError
|
||||
```
|
||||
@@ -0,0 +1,354 @@
|
||||
---
|
||||
id: CreateMutationOptions
|
||||
title: CreateMutationOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:224](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L224)
|
||||
|
||||
The options accepted by `injectMutation`. Same as [MutationObserverOptions](MutationObserverOptions.md) from
|
||||
`@tanstack/query-core`, minus the internal `_defaulted` flag.
|
||||
|
||||
## Extends
|
||||
|
||||
- [`OmitKeyof`](../type-aliases/OmitKeyof.md)\<[`MutationObserverOptions`](MutationObserverOptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"_defaulted"`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
The type your mutation function resolves to.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your mutation function may throw.
|
||||
|
||||
### TVariables
|
||||
|
||||
`TVariables` = `void`
|
||||
|
||||
The type of the variable passed to `mutate`/`mutateAsync`.
|
||||
|
||||
### TOnMutateResult
|
||||
|
||||
`TOnMutateResult` = `unknown`
|
||||
|
||||
The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
||||
their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
||||
|
||||
## Properties
|
||||
|
||||
### gcTime?
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1260](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1260)
|
||||
|
||||
The time in milliseconds that an unused/inactive mutation remains in memory before it is
|
||||
garbage collected.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`MutationOptions`](MutationOptions.md).[`gcTime`](MutationOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### meta?
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1263](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1263)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`MutationOptions`](MutationOptions.md).[`meta`](MutationOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### mutationFn?
|
||||
|
||||
```ts
|
||||
optional mutationFn: MutationFunction<TData, TVariables>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1206](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1206)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.mutationFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### mutationKey?
|
||||
|
||||
```ts
|
||||
optional mutationKey: readonly unknown[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1207](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1207)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`MutationOptions`](MutationOptions.md).[`mutationKey`](MutationOptions.md#mutationkey)
|
||||
|
||||
***
|
||||
|
||||
### networkMode?
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1253](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1253)
|
||||
|
||||
Controls whether a mutation is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`MutationOptions`](MutationOptions.md).[`networkMode`](MutationOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### onError()?
|
||||
|
||||
```ts
|
||||
optional onError: (error, variables, onMutateResult, context) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1218](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1218)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### error
|
||||
|
||||
`TError`
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
##### onMutateResult
|
||||
|
||||
`TOnMutateResult` | `undefined`
|
||||
|
||||
##### context
|
||||
|
||||
[`MutationFunctionContext`](../type-aliases/MutationFunctionContext.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.onError
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onMutate()?
|
||||
|
||||
```ts
|
||||
optional onMutate: (variables, context) => TOnMutateResult | Promise<TOnMutateResult>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1208](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1208)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
##### context
|
||||
|
||||
[`MutationFunctionContext`](../type-aliases/MutationFunctionContext.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`TOnMutateResult` \| `Promise`\<`TOnMutateResult`\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.onMutate
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSettled()?
|
||||
|
||||
```ts
|
||||
optional onSettled: (data, error, variables, onMutateResult, context) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1224](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1224)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
`TData` | `undefined`
|
||||
|
||||
##### error
|
||||
|
||||
`TError` | `null`
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
##### onMutateResult
|
||||
|
||||
`TOnMutateResult` | `undefined`
|
||||
|
||||
##### context
|
||||
|
||||
[`MutationFunctionContext`](../type-aliases/MutationFunctionContext.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.onSettled
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onSuccess()?
|
||||
|
||||
```ts
|
||||
optional onSuccess: (data, variables, onMutateResult, context) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1212](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1212)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
`TData`
|
||||
|
||||
##### variables
|
||||
|
||||
`TVariables`
|
||||
|
||||
##### onMutateResult
|
||||
|
||||
`TOnMutateResult`
|
||||
|
||||
##### context
|
||||
|
||||
[`MutationFunctionContext`](../type-aliases/MutationFunctionContext.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.onSuccess
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retry?
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1239](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1239)
|
||||
|
||||
If `false`, failed mutations will not retry by default.
|
||||
If `true`, failed mutations will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed mutations will retry until the failed mutation count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed mutations will retry until the function returns false.
|
||||
|
||||
Defaults to `0`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retry
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retryDelay?
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1246)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retryDelay
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### scope?
|
||||
|
||||
```ts
|
||||
optional scope: MutationScope;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1264](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1264)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`MutationOptions`](MutationOptions.md).[`scope`](MutationOptions.md#scope)
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: boolean | (error) => boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1281](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1281)
|
||||
|
||||
Whether errors should be thrown instead of setting the `error` property.
|
||||
If set to `true`, all errors will be thrown to the nearest error boundary.
|
||||
If set to a function, it will be passed the error and should return a boolean indicating whether to throw the
|
||||
error (`true`) or return it as state (`false`).
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.throwOnError
|
||||
```
|
||||
@@ -0,0 +1,647 @@
|
||||
---
|
||||
id: CreateQueryOptions
|
||||
title: CreateQueryOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/angular-query-experimental/src/types.ts:58](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L58)
|
||||
|
||||
The options accepted by `injectQuery`. Same as [CreateBaseQueryOptions](CreateBaseQueryOptions.md), minus `suspense` — which
|
||||
`angular-query-experimental` doesn't support, unlike `react-query`.
|
||||
|
||||
## Extends
|
||||
|
||||
- [`OmitKeyof`](../type-aliases/OmitKeyof.md)\<[`CreateBaseQueryOptions`](CreateBaseQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`\>, `"suspense"`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
The type your `queryFn` resolves to.
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
The type of errors your `queryFn` may throw.
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
The type `data` ends up as after `select` runs. Defaults to `TQueryFnData` when no
|
||||
`select` is used.
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
The type of your `queryKey`.
|
||||
|
||||
## Properties
|
||||
|
||||
### enabled?
|
||||
|
||||
```ts
|
||||
optional enabled: QueryBooleanOption<TQueryFnData, TError, TQueryFnData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:398](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L398)
|
||||
|
||||
Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
||||
To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
||||
Accepts a boolean or function that returns a boolean.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.enabled
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### gcTime?
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`gcTime`](QueryOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### initialData?
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| TQueryFnData
|
||||
| InitialDataFunction<TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.initialData
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### initialDataUpdatedAt?
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.initialDataUpdatedAt
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### maxPages?
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`maxPages`](QueryOptions.md#maxpages)
|
||||
|
||||
***
|
||||
|
||||
### meta?
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`meta`](QueryOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### networkMode?
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`networkMode`](QueryOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### notifyOnChangeProps?
|
||||
|
||||
```ts
|
||||
optional notifyOnChangeProps: NotifyOnChangeProps;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:484](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L484)
|
||||
|
||||
If set, the component will only re-render if any of the listed properties change.
|
||||
When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
||||
When set to `'all'`, the component will re-render whenever a query is updated.
|
||||
When set to a function, the function will be executed to compute the list of properties.
|
||||
|
||||
Defaults to `undefined`, in which case property access is tracked automatically, and the
|
||||
component only re-renders when one of the tracked properties changes.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`notifyOnChangeProps`](QueryObserverOptions.md#notifyonchangeprops)
|
||||
|
||||
***
|
||||
|
||||
### persister()?
|
||||
|
||||
```ts
|
||||
optional persister: (queryFn, context, query) => TQueryFnData | Promise<TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### queryFn
|
||||
|
||||
[`QueryFunction`](../type-aliases/QueryFunction.md)\<`TQueryFnData`, `NoInfer`\<`TQueryKey`\>, `never`\>
|
||||
|
||||
##### context
|
||||
|
||||
###### client
|
||||
|
||||
[`QueryClient`](../classes/QueryClient.md)
|
||||
|
||||
###### direction?
|
||||
|
||||
`unknown`
|
||||
|
||||
**Deprecated**
|
||||
|
||||
if you want access to the direction, you can add it to the pageParam
|
||||
|
||||
###### meta
|
||||
|
||||
`Record`\<`string`, `unknown`\> \| `undefined`
|
||||
|
||||
###### pageParam?
|
||||
|
||||
`unknown`
|
||||
|
||||
###### queryKey
|
||||
|
||||
`NoInfer`\<`TQueryKey`\>
|
||||
|
||||
###### signal
|
||||
|
||||
`AbortSignal`
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](../classes/Query.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`TQueryFnData` \| `Promise`\<`TQueryFnData`\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.persister
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### placeholderData?
|
||||
|
||||
```ts
|
||||
optional placeholderData:
|
||||
| NonFunctionGuard<TQueryFnData>
|
||||
| PlaceholderDataFunction<NonFunctionGuard<TQueryFnData>, TError, NonFunctionGuard<TQueryFnData>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:511](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L511)
|
||||
|
||||
If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.placeholderData
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryFn?
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, never>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryHash?
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryOptions`](QueryOptions.md).[`queryHash`](QueryOptions.md#queryhash)
|
||||
|
||||
***
|
||||
|
||||
### queryKey
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryKey
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### queryKeyHashFn?
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.queryKeyHashFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchInterval?
|
||||
|
||||
```ts
|
||||
optional refetchInterval: number | false | (query) => number | false | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:414](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L414)
|
||||
|
||||
If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
||||
If set to a function, the function will be executed with the latest data and query to compute a frequency
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchInterval
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchIntervalInBackground?
|
||||
|
||||
```ts
|
||||
optional refetchIntervalInBackground: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:425](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L425)
|
||||
|
||||
If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchIntervalInBackground`](QueryObserverOptions.md#refetchintervalinbackground)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnMount?
|
||||
|
||||
```ts
|
||||
optional refetchOnMount: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:462](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L462)
|
||||
|
||||
If set to `true`, the query will refetch on mount if the data is stale.
|
||||
If set to `false`, will disable additional instances of a query to trigger background refetch.
|
||||
If set to `'always'`, the query will always refetch on mount (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnMount
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchOnReconnect?
|
||||
|
||||
```ts
|
||||
optional refetchOnReconnect: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:448](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L448)
|
||||
|
||||
If set to `true`, the query will refetch on reconnect if the data is stale.
|
||||
If set to `false`, the query will not refetch on reconnect.
|
||||
If set to `'always'`, the query will always refetch on reconnect (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true` unless `networkMode` is `'always'`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnReconnect
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### refetchOnWindowFocus?
|
||||
|
||||
```ts
|
||||
optional refetchOnWindowFocus: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:434](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L434)
|
||||
|
||||
If set to `true`, the query will refetch on window focus if the data is stale.
|
||||
If set to `false`, the query will not refetch on window focus.
|
||||
If set to `'always'`, the query will always refetch on window focus (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.refetchOnWindowFocus
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retry?
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retry
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retryDelay?
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retryDelay
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### retryOnMount?
|
||||
|
||||
```ts
|
||||
optional retryOnMount: QueryBooleanOption<TQueryFnData, TError, TQueryFnData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:474](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L474)
|
||||
|
||||
If set to `false`, the query will not be retried on mount if it contains an error.
|
||||
If set to a function, the function will be executed with the query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.retryOnMount
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### select()?
|
||||
|
||||
```ts
|
||||
optional select: (data) => TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:500](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L500)
|
||||
|
||||
This option can be used to transform or select a part of the data returned by the query function. It affects
|
||||
the returned `data` value, but does not affect what gets stored in the query cache.
|
||||
The `select` function will only run if `data` changed, or if the reference to the `select` function itself
|
||||
changes. To optimize, memoize the function so its reference stays stable across calls.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
`TQueryFnData`
|
||||
|
||||
#### Returns
|
||||
|
||||
`TData`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.select
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### staleTime?
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, TQueryFnData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:407](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L407)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If set to `Infinity`, the data will never be considered stale.
|
||||
If set to `'static'`, the data will never be considered stale.
|
||||
If set to a function, the function will be executed with the query to compute a `staleTime`.
|
||||
|
||||
Defaults to `0`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.staleTime
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### structuralSharing?
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.structuralSharing
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: ThrowOnError<TQueryFnData, TError, TQueryFnData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:493](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L493)
|
||||
|
||||
Whether errors should be thrown instead of setting the `error` property.
|
||||
If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
||||
If set to `false` and `suspense` is `false`, errors are returned as state.
|
||||
If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
OmitKeyof.throwOnError
|
||||
```
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
id: DefaultOptions
|
||||
title: DefaultOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1507](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1507)
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### dehydrate?
|
||||
|
||||
```ts
|
||||
optional dehydrate: DehydrateOptions;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1518](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1518)
|
||||
|
||||
Default options used when dehydrating the client's caches; see [DehydrateOptions](DehydrateOptions.md).
|
||||
|
||||
***
|
||||
|
||||
### hydrate?
|
||||
|
||||
```ts
|
||||
optional hydrate: object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1516](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1516)
|
||||
|
||||
Default options used when hydrating queries; see [HydrateOptions](HydrateOptions.md).
|
||||
|
||||
#### deserializeData?
|
||||
|
||||
```ts
|
||||
optional deserializeData: TransformerFn;
|
||||
```
|
||||
|
||||
Transforms a query's `data` after it is read from the dehydrated state, reversing `serializeData`.
|
||||
|
||||
#### mutations?
|
||||
|
||||
```ts
|
||||
optional mutations: MutationOptions<unknown, Error, unknown, unknown>;
|
||||
```
|
||||
|
||||
Default options merged into every mutation restored from the dehydrated state.
|
||||
|
||||
#### queries?
|
||||
|
||||
```ts
|
||||
optional queries: QueryOptions<unknown, Error, unknown, readonly unknown[], never>;
|
||||
```
|
||||
|
||||
Default options merged into every query restored from the dehydrated state.
|
||||
|
||||
***
|
||||
|
||||
### mutations?
|
||||
|
||||
```ts
|
||||
optional mutations: MutationObserverOptions<unknown, TError, unknown, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1514](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1514)
|
||||
|
||||
Default options applied to every mutation, unless overridden per-mutation.
|
||||
|
||||
***
|
||||
|
||||
### queries?
|
||||
|
||||
```ts
|
||||
optional queries: OmitKeyof<QueryObserverOptions<unknown, TError, unknown, unknown, readonly unknown[], never>, "queryKey" | "suspense", "strictly">;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1509](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1509)
|
||||
|
||||
Default options applied to every query, unless overridden per-query.
|
||||
@@ -0,0 +1,89 @@
|
||||
---
|
||||
id: DehydrateOptions
|
||||
title: DehydrateOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:42](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L42)
|
||||
|
||||
Options for `dehydrate`, controlling which queries/mutations are included in the resulting `DehydratedState` and
|
||||
how their data/errors are transformed before being serialized (e.g. for embedding in server-rendered markup).
|
||||
|
||||
## Properties
|
||||
|
||||
### serializeData?
|
||||
|
||||
```ts
|
||||
optional serializeData: TransformerFn;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:44](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L44)
|
||||
|
||||
Transforms a query's `data` before it is dehydrated. Useful for non-JSON-serializable data.
|
||||
|
||||
***
|
||||
|
||||
### shouldDehydrateMutation()?
|
||||
|
||||
```ts
|
||||
optional shouldDehydrateMutation: (mutation) => boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:46](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L46)
|
||||
|
||||
Predicate to decide whether a given `Mutation` should be dehydrated. Defaults to `defaultShouldDehydrateMutation`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### mutation
|
||||
|
||||
[`Mutation`](../classes/Mutation.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### shouldDehydrateQuery()?
|
||||
|
||||
```ts
|
||||
optional shouldDehydrateQuery: (query) => boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:48](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L48)
|
||||
|
||||
Predicate to decide whether a given `Query` should be dehydrated. Defaults to `defaultShouldDehydrateQuery`.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### query
|
||||
|
||||
[`Query`](../classes/Query.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### shouldRedactErrors()?
|
||||
|
||||
```ts
|
||||
optional shouldRedactErrors: (error) => boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:54](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L54)
|
||||
|
||||
Predicate to decide whether a query's error should be redacted before dehydration. Errors are redacted
|
||||
(replaced with a generic `Error('redacted')`) unless this function is provided and returns `false` for the
|
||||
given error, in which case the original error is kept.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### error
|
||||
|
||||
`unknown`
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: DehydratedState
|
||||
title: DehydratedState
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:94](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L94)
|
||||
|
||||
A serializable snapshot of a `QueryClient`'s cache, as produced by `dehydrate` and consumed by `hydrate`. Typically
|
||||
transported from server to client (e.g. embedded in server-rendered markup) to seed the client's cache with data
|
||||
that has already been fetched, avoiding a redundant fetch on the client.
|
||||
|
||||
## Properties
|
||||
|
||||
### mutations
|
||||
|
||||
```ts
|
||||
mutations: DehydratedMutation[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:95](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L95)
|
||||
|
||||
***
|
||||
|
||||
### queries
|
||||
|
||||
```ts
|
||||
queries: DehydratedQuery[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:96](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L96)
|
||||
@@ -0,0 +1,350 @@
|
||||
---
|
||||
id: EnsureQueryDataOptions
|
||||
title: EnsureQueryDataOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:614](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L614)
|
||||
|
||||
## Deprecated
|
||||
|
||||
## Extends
|
||||
|
||||
- [`FetchQueryOptions`](FetchQueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `never`
|
||||
|
||||
## Properties
|
||||
|
||||
### ~~gcTime?~~
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`gcTime`](FetchQueryOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### ~~initialData?~~
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| TData
|
||||
| InitialDataFunction<TData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`initialData`](FetchQueryOptions.md#initialdata)
|
||||
|
||||
***
|
||||
|
||||
### ~~initialDataUpdatedAt?~~
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`initialDataUpdatedAt`](FetchQueryOptions.md#initialdataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### ~~initialPageParam?~~
|
||||
|
||||
```ts
|
||||
optional initialPageParam: undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:605](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L605)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`initialPageParam`](FetchQueryOptions.md#initialpageparam)
|
||||
|
||||
***
|
||||
|
||||
### ~~maxPages?~~
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`maxPages`](FetchQueryOptions.md#maxpages)
|
||||
|
||||
***
|
||||
|
||||
### ~~meta?~~
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`meta`](FetchQueryOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### ~~networkMode?~~
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`networkMode`](FetchQueryOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### ~~persister?~~
|
||||
|
||||
```ts
|
||||
optional persister: QueryPersister<TQueryFnData, NoInfer<TQueryKey>, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`persister`](FetchQueryOptions.md#persister)
|
||||
|
||||
***
|
||||
|
||||
### ~~queryFn?~~
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`queryFn`](FetchQueryOptions.md#queryfn)
|
||||
|
||||
***
|
||||
|
||||
### ~~queryHash?~~
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`queryHash`](FetchQueryOptions.md#queryhash)
|
||||
|
||||
***
|
||||
|
||||
### ~~queryKey~~
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`queryKey`](FetchQueryOptions.md#querykey)
|
||||
|
||||
***
|
||||
|
||||
### ~~queryKeyHashFn?~~
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`queryKeyHashFn`](FetchQueryOptions.md#querykeyhashfn)
|
||||
|
||||
***
|
||||
|
||||
### ~~retry?~~
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`retry`](FetchQueryOptions.md#retry)
|
||||
|
||||
***
|
||||
|
||||
### ~~retryDelay?~~
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`retryDelay`](FetchQueryOptions.md#retrydelay)
|
||||
|
||||
***
|
||||
|
||||
### ~~revalidateIfStale?~~
|
||||
|
||||
```ts
|
||||
optional revalidateIfStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:627](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L627)
|
||||
|
||||
***
|
||||
|
||||
### ~~staleTime?~~
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:610](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L610)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If the data is fresh it will be returned from the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`staleTime`](FetchQueryOptions.md#staletime)
|
||||
|
||||
***
|
||||
|
||||
### ~~structuralSharing?~~
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`FetchQueryOptions`](FetchQueryOptions.md).[`structuralSharing`](FetchQueryOptions.md#structuralsharing)
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
id: FetchNextPageOptions
|
||||
title: FetchNextPageOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:737](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L737)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`ResultOptions`](ResultOptions.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### cancelRefetch?
|
||||
|
||||
```ts
|
||||
optional cancelRefetch: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:746](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L746)
|
||||
|
||||
If set to `true`, calling `fetchNextPage` repeatedly will invoke `queryFn` every time,
|
||||
whether the previous invocation has resolved or not. Also, the result from previous invocations will be ignored.
|
||||
|
||||
If set to `false`, calling `fetchNextPage` repeatedly won't have any effect until the first invocation has resolved.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:701](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L701)
|
||||
|
||||
If set to `true`, the method throws if any of the underlying query refetch tasks fail.
|
||||
|
||||
Defaults to `false`, in which case failed refetches are swallowed and not surfaced to the
|
||||
caller.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`ResultOptions`](ResultOptions.md).[`throwOnError`](ResultOptions.md#throwonerror)
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
id: FetchPreviousPageOptions
|
||||
title: FetchPreviousPageOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:749](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L749)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`ResultOptions`](ResultOptions.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### cancelRefetch?
|
||||
|
||||
```ts
|
||||
optional cancelRefetch: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:758](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L758)
|
||||
|
||||
If set to `true`, calling `fetchPreviousPage` repeatedly will invoke `queryFn` every time,
|
||||
whether the previous invocation has resolved or not. Also, the result from previous invocations will be ignored.
|
||||
|
||||
If set to `false`, calling `fetchPreviousPage` repeatedly won't have any effect until the first invocation has resolved.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:701](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L701)
|
||||
|
||||
If set to `true`, the method throws if any of the underlying query refetch tasks fail.
|
||||
|
||||
Defaults to `false`, in which case failed refetches are swallowed and not surfaced to the
|
||||
caller.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`ResultOptions`](ResultOptions.md).[`throwOnError`](ResultOptions.md#throwonerror)
|
||||
364
docs/framework/angular/reference/interfaces/FetchQueryOptions.md
Normal file
364
docs/framework/angular/reference/interfaces/FetchQueryOptions.md
Normal file
@@ -0,0 +1,364 @@
|
||||
---
|
||||
id: FetchQueryOptions
|
||||
title: FetchQueryOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:595](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L595)
|
||||
|
||||
## Deprecated
|
||||
|
||||
## Extends
|
||||
|
||||
- [`WithRequired`](../type-aliases/WithRequired.md)\<[`QueryOptions`](QueryOptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>, `"queryKey"`\>
|
||||
|
||||
## Extended by
|
||||
|
||||
- [`EnsureQueryDataOptions`](EnsureQueryDataOptions.md)
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `never`
|
||||
|
||||
## Properties
|
||||
|
||||
### ~~gcTime?~~
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.gcTime
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~initialData?~~
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| TData
|
||||
| InitialDataFunction<TData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.initialData
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~initialDataUpdatedAt?~~
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.initialDataUpdatedAt
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~initialPageParam?~~
|
||||
|
||||
```ts
|
||||
optional initialPageParam: undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:605](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L605)
|
||||
|
||||
***
|
||||
|
||||
### ~~maxPages?~~
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.maxPages
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~meta?~~
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.meta
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~networkMode?~~
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.networkMode
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~persister?~~
|
||||
|
||||
```ts
|
||||
optional persister: QueryPersister<TQueryFnData, NoInfer<TQueryKey>, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.persister
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~queryFn?~~
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.queryFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~queryHash?~~
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.queryHash
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~queryKey~~
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.queryKey
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~queryKeyHashFn?~~
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.queryKeyHashFn
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~retry?~~
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.retry
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~retryDelay?~~
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.retryDelay
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### ~~staleTime?~~
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:610](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L610)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If the data is fresh it will be returned from the cache.
|
||||
|
||||
***
|
||||
|
||||
### ~~structuralSharing?~~
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
WithRequired.structuralSharing
|
||||
```
|
||||
237
docs/framework/angular/reference/interfaces/FocusManager.md
Normal file
237
docs/framework/angular/reference/interfaces/FocusManager.md
Normal file
@@ -0,0 +1,237 @@
|
||||
---
|
||||
id: FocusManager
|
||||
title: FocusManager
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:14](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L14)
|
||||
|
||||
The `FocusManager` manages the focus state within TanStack Query.
|
||||
|
||||
It can be used to change the default event listeners or to manually change the focus state.
|
||||
|
||||
## Extends
|
||||
|
||||
- `Subscribable`\<`Listener`\>
|
||||
|
||||
## Properties
|
||||
|
||||
### listeners
|
||||
|
||||
```ts
|
||||
protected listeners: Set<Listener>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:2](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L2)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.listeners
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
### hasListeners()
|
||||
|
||||
```ts
|
||||
hasListeners(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:19](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L19)
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.hasListeners
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### isFocused()
|
||||
|
||||
```ts
|
||||
isFocused(): boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:128](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L128)
|
||||
|
||||
`isFocused` can be used to get the current focus state.
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
|
||||
***
|
||||
|
||||
### onFocus()
|
||||
|
||||
```ts
|
||||
onFocus(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:118](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L118)
|
||||
|
||||
`onFocus` notifies all subscribed listeners with the current focus state.
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
***
|
||||
|
||||
### onSubscribe()
|
||||
|
||||
```ts
|
||||
protected onSubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:39](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L39)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onSubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### onUnsubscribe()
|
||||
|
||||
```ts
|
||||
protected onUnsubscribe(): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:45](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L45)
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Overrides
|
||||
|
||||
```ts
|
||||
Subscribable.onUnsubscribe
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### setEventListener()
|
||||
|
||||
```ts
|
||||
setEventListener(setup): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:77](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L77)
|
||||
|
||||
`setEventListener` can be used to set a custom event listener that will
|
||||
be used to determine the focus state. The provided `setup` function
|
||||
receives a `setFocused` callback: call it with a `boolean` to manually
|
||||
set the focus state, or with no arguments to re-evaluate the current
|
||||
focus state and notify subscribers.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### setup
|
||||
|
||||
`SetupFn`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
import { focusManager } from '@tanstack/query-core'
|
||||
|
||||
focusManager.setEventListener((handleFocus) => {
|
||||
const listener = () => handleFocus()
|
||||
// Listen to visibilitychange
|
||||
if (typeof window !== 'undefined' && window.addEventListener) {
|
||||
window.addEventListener('visibilitychange', listener, false)
|
||||
}
|
||||
|
||||
return () => {
|
||||
// Be sure to unsubscribe if a new handler is set
|
||||
window.removeEventListener('visibilitychange', listener)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### setFocused()
|
||||
|
||||
```ts
|
||||
setFocused(focused?): void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/focusManager.ts:107](https://github.com/TanStack/query/blob/main/packages/query-core/src/focusManager.ts#L107)
|
||||
|
||||
`setFocused` can be used to manually set the focus state. Set `undefined`
|
||||
to fall back to the default focus check.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### focused?
|
||||
|
||||
`boolean`
|
||||
|
||||
#### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Example
|
||||
|
||||
```ts
|
||||
import { focusManager } from '@tanstack/query-core'
|
||||
|
||||
// Set focused
|
||||
focusManager.setFocused(true)
|
||||
|
||||
// Set unfocused
|
||||
focusManager.setFocused(false)
|
||||
|
||||
// Fallback to the default focus check
|
||||
focusManager.setFocused(undefined)
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### subscribe()
|
||||
|
||||
```ts
|
||||
subscribe(listener): () => void;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/subscribable.ts:8](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L8)
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### listener
|
||||
|
||||
`Listener`
|
||||
|
||||
#### Returns
|
||||
|
||||
```ts
|
||||
(): void;
|
||||
```
|
||||
|
||||
##### Returns
|
||||
|
||||
`void`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
```ts
|
||||
Subscribable.subscribe
|
||||
```
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
id: HydrateOptions
|
||||
title: HydrateOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:61](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L61)
|
||||
|
||||
Options for `hydrate`, controlling the default options applied to queries/mutations restored from a
|
||||
`DehydratedState`, and how to reverse any transformation applied by `DehydrateOptions.serializeData`.
|
||||
|
||||
## Properties
|
||||
|
||||
### defaultOptions?
|
||||
|
||||
```ts
|
||||
optional defaultOptions: object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/hydration.ts:62](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L62)
|
||||
|
||||
#### deserializeData?
|
||||
|
||||
```ts
|
||||
optional deserializeData: TransformerFn;
|
||||
```
|
||||
|
||||
Transforms a query's `data` after it is read from the dehydrated state, reversing `serializeData`.
|
||||
|
||||
#### mutations?
|
||||
|
||||
```ts
|
||||
optional mutations: MutationOptions<unknown, Error, unknown, unknown>;
|
||||
```
|
||||
|
||||
Default options merged into every mutation restored from the dehydrated state.
|
||||
|
||||
#### queries?
|
||||
|
||||
```ts
|
||||
optional queries: QueryOptions<unknown, Error, unknown, readonly unknown[], never>;
|
||||
```
|
||||
|
||||
Default options merged into every query restored from the dehydrated state.
|
||||
36
docs/framework/angular/reference/interfaces/InfiniteData.md
Normal file
36
docs/framework/angular/reference/interfaces/InfiniteData.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: InfiniteData
|
||||
title: InfiniteData
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:210](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L210)
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData`
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
## Properties
|
||||
|
||||
### pageParams
|
||||
|
||||
```ts
|
||||
pageParams: TPageParam[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:212](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L212)
|
||||
|
||||
***
|
||||
|
||||
### pages
|
||||
|
||||
```ts
|
||||
pages: TData[];
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:211](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L211)
|
||||
@@ -0,0 +1,577 @@
|
||||
---
|
||||
id: InfiniteQueryObserverBaseResult
|
||||
title: InfiniteQueryObserverBaseResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1001](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1001)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`QueryObserverBaseResult`](QueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Extended by
|
||||
|
||||
- [`InfiniteQueryObserverPendingResult`](InfiniteQueryObserverPendingResult.md)
|
||||
- [`InfiniteQueryObserverLoadingResult`](InfiniteQueryObserverLoadingResult.md)
|
||||
- [`InfiniteQueryObserverLoadingErrorResult`](InfiniteQueryObserverLoadingErrorResult.md)
|
||||
- [`InfiniteQueryObserverRefetchErrorResult`](InfiniteQueryObserverRefetchErrorResult.md)
|
||||
- [`InfiniteQueryObserverSuccessResult`](InfiniteQueryObserverSuccessResult.md)
|
||||
- [`InfiniteQueryObserverPlaceholderResult`](InfiniteQueryObserverPlaceholderResult.md)
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: TData | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:771](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L771)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`data`](QueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`dataUpdatedAt`](QueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:780](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L780)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`error`](QueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`errorUpdateCount`](QueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`errorUpdatedAt`](QueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`failureCount`](QueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`failureReason`](QueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`fetchStatus`](QueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isEnabled`](QueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:804](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L804)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isError`](QueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isFetched`](QueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isFetchedAfterMount`](QueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isFetching`](QueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1028](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1028)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1036](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1036)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isInitialLoading`](QueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:823](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L823)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isLoading`](QueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:831](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L831)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isLoadingError`](QueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isPaused`](QueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:827](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L827)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isPending`](QueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:845](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L845)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isPlaceholderData`](QueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:849](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L849)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isRefetchError`](QueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isRefetching`](QueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isStale`](QueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:863](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L863)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`isSuccess`](QueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`refetch`](QueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: QueryStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:881](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L881)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverBaseResult`](QueryObserverBaseResult.md).[`status`](QueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverLoadingErrorResult
|
||||
title: InfiniteQueryObserverLoadingErrorResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1078](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1078)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1082](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1082)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: TError;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1083](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1083)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1084](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1084)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1089](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1089)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1090](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1090)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1086](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1086)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1087](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1087)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1085](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1085)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1092](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1092)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1088](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1088)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1091](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1091)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "error";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1093](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1093)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverLoadingResult
|
||||
title: InfiniteQueryObserverLoadingResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1060](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1060)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1064](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1064)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1065](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1065)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1066](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1066)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1071](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1071)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1072](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1072)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1068](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1068)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1069](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1069)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1067](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1067)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1074](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1074)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1070](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1070)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1073](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1073)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "pending";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1075](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1075)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,624 @@
|
||||
---
|
||||
id: InfiniteQueryObserverOptions
|
||||
title: InfiniteQueryObserverOptions
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:539](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L539)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`QueryObserverOptions`](QueryObserverOptions.md)\<`TQueryFnData`, `TError`, `TData`, [`InfiniteData`](InfiniteData.md)\<`TQueryFnData`, `TPageParam`\>, `TQueryKey`, `TPageParam`\>.[`InfiniteQueryPageParamsOptions`](InfiniteQueryPageParamsOptions.md)\<`TQueryFnData`, `TPageParam`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TQueryFnData
|
||||
|
||||
`TQueryFnData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `TQueryFnData`
|
||||
|
||||
### TQueryKey
|
||||
|
||||
`TQueryKey` *extends* [`QueryKey`](../type-aliases/QueryKey.md) = [`QueryKey`](../type-aliases/QueryKey.md)
|
||||
|
||||
### TPageParam
|
||||
|
||||
`TPageParam` = `unknown`
|
||||
|
||||
## Properties
|
||||
|
||||
### enabled?
|
||||
|
||||
```ts
|
||||
optional enabled: QueryBooleanOption<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:398](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L398)
|
||||
|
||||
Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
||||
To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
||||
Accepts a boolean or function that returns a boolean.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`enabled`](QueryObserverOptions.md#enabled)
|
||||
|
||||
***
|
||||
|
||||
### gcTime?
|
||||
|
||||
```ts
|
||||
optional gcTime: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:277](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L277)
|
||||
|
||||
The time in milliseconds that unused/inactive cache data remains in memory.
|
||||
When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.
|
||||
When different garbage collection times are specified, the longest one will be used.
|
||||
Setting it to `Infinity` will disable garbage collection.
|
||||
|
||||
Defaults to `5 * 60 * 1000` (5 minutes), or `Infinity` during SSR.
|
||||
|
||||
Note: the maximum allowed time is about 24 days, imposed by `setTimeout`'s 32-bit signed integer delay — see
|
||||
`timeoutManager.setTimeoutProvider` for a workaround.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`gcTime`](QueryObserverOptions.md#gctime)
|
||||
|
||||
***
|
||||
|
||||
### getNextPageParam
|
||||
|
||||
```ts
|
||||
getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:365](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L365)
|
||||
|
||||
This function can be set to automatically get the next cursor for infinite queries.
|
||||
The result will also be used to determine the value of `hasNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryPageParamsOptions`](InfiniteQueryPageParamsOptions.md).[`getNextPageParam`](InfiniteQueryPageParamsOptions.md#getnextpageparam)
|
||||
|
||||
***
|
||||
|
||||
### getPreviousPageParam?
|
||||
|
||||
```ts
|
||||
optional getPreviousPageParam: GetPreviousPageParamFunction<TPageParam, TQueryFnData>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:360](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L360)
|
||||
|
||||
This function can be set to automatically get the previous cursor for infinite queries.
|
||||
The result will also be used to determine the value of `hasPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryPageParamsOptions`](InfiniteQueryPageParamsOptions.md).[`getPreviousPageParam`](InfiniteQueryPageParamsOptions.md#getpreviouspageparam)
|
||||
|
||||
***
|
||||
|
||||
### initialData?
|
||||
|
||||
```ts
|
||||
optional initialData:
|
||||
| InfiniteData<TQueryFnData, TPageParam>
|
||||
| InitialDataFunction<InfiniteData<TQueryFnData, TPageParam>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:317](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L317)
|
||||
|
||||
If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
||||
created or cached yet).
|
||||
If set to a function, the function will be called **once** during the shared/root query initialization, and be
|
||||
expected to synchronously return the initial data.
|
||||
Initial data is considered stale by default unless a `staleTime` has been set.
|
||||
`initialData` **is persisted** to the cache.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`initialData`](QueryObserverOptions.md#initialdata)
|
||||
|
||||
***
|
||||
|
||||
### initialDataUpdatedAt?
|
||||
|
||||
```ts
|
||||
optional initialDataUpdatedAt: number | () => number | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:321](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L321)
|
||||
|
||||
If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`initialDataUpdatedAt`](QueryObserverOptions.md#initialdataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### initialPageParam
|
||||
|
||||
```ts
|
||||
initialPageParam: TPageParam;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:349](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L349)
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryPageParamsOptions`](InfiniteQueryPageParamsOptions.md).[`initialPageParam`](InfiniteQueryPageParamsOptions.md#initialpageparam)
|
||||
|
||||
***
|
||||
|
||||
### maxPages?
|
||||
|
||||
```ts
|
||||
optional maxPages: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:345](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L345)
|
||||
|
||||
Maximum number of pages to store in the data of an infinite query.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`maxPages`](QueryObserverOptions.md#maxpages)
|
||||
|
||||
***
|
||||
|
||||
### meta?
|
||||
|
||||
```ts
|
||||
optional meta: Record<string, unknown>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:341](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L341)
|
||||
|
||||
Additional payload to be stored on each query.
|
||||
Use this property to pass information that can be used in other places.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`meta`](QueryObserverOptions.md#meta)
|
||||
|
||||
***
|
||||
|
||||
### networkMode?
|
||||
|
||||
```ts
|
||||
optional networkMode: NetworkMode;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:265](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L265)
|
||||
|
||||
Controls whether a query is allowed to run based on the current network connectivity.
|
||||
|
||||
Defaults to `'online'`.
|
||||
|
||||
#### See
|
||||
|
||||
[Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`networkMode`](QueryObserverOptions.md#networkmode)
|
||||
|
||||
***
|
||||
|
||||
### notifyOnChangeProps?
|
||||
|
||||
```ts
|
||||
optional notifyOnChangeProps: NotifyOnChangeProps;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:484](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L484)
|
||||
|
||||
If set, the component will only re-render if any of the listed properties change.
|
||||
When set to `['data', 'error']`, the component will only re-render when the `data` or `error` properties change.
|
||||
When set to `'all'`, the component will re-render whenever a query is updated.
|
||||
When set to a function, the function will be executed to compute the list of properties.
|
||||
|
||||
Defaults to `undefined`, in which case property access is tracked automatically, and the
|
||||
component only re-renders when one of the tracked properties changes.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`notifyOnChangeProps`](QueryObserverOptions.md#notifyonchangeprops)
|
||||
|
||||
***
|
||||
|
||||
### persister?
|
||||
|
||||
```ts
|
||||
optional persister: QueryPersister<TQueryFnData, NoInfer<TQueryKey>, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:290](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L290)
|
||||
|
||||
This option can be used to persist the result of a query to an external storage, bypassing the need to actually
|
||||
call the `queryFn`. Useful for persisting a query's data across e.g. server/client boundaries.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`persister`](QueryObserverOptions.md#persister)
|
||||
|
||||
***
|
||||
|
||||
### placeholderData?
|
||||
|
||||
```ts
|
||||
optional placeholderData:
|
||||
| InfiniteData<TQueryFnData, TPageParam>
|
||||
| PlaceholderDataFunction<InfiniteData<TQueryFnData, TPageParam>, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:511](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L511)
|
||||
|
||||
If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`placeholderData`](QueryObserverOptions.md#placeholderdata)
|
||||
|
||||
***
|
||||
|
||||
### queryFn?
|
||||
|
||||
```ts
|
||||
optional queryFn:
|
||||
| typeof skipToken
|
||||
| QueryFunction<TQueryFnData, TQueryKey, TPageParam>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:285](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L285)
|
||||
|
||||
The function that the query will use to request data.
|
||||
Required, unless a default query function has been set via `queryClient.setQueryDefaults` or
|
||||
`queryClient.setDefaultOptions`.
|
||||
Receives a [QueryFunctionContext](../type-aliases/QueryFunctionContext.md).
|
||||
Must return a promise that will either resolve data or throw an error. The data cannot be `undefined`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryFn`](QueryObserverOptions.md#queryfn)
|
||||
|
||||
***
|
||||
|
||||
### queryHash?
|
||||
|
||||
```ts
|
||||
optional queryHash: string;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:295](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L295)
|
||||
|
||||
The hashed form of `queryKey`, computed with `queryKeyHashFn` (or the default hashing function otherwise). Used
|
||||
as the actual cache key internally.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryHash`](QueryObserverOptions.md#queryhash)
|
||||
|
||||
***
|
||||
|
||||
### queryKey
|
||||
|
||||
```ts
|
||||
queryKey: TQueryKey & object;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:304](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L304)
|
||||
|
||||
The query key to use for this query.
|
||||
|
||||
The query key will be hashed into a stable hash. See [Query Keys](https://tanstack.com/query/latest/docs/framework/react/guides/query-keys)
|
||||
for more information.
|
||||
|
||||
The query will automatically update when this key changes (as long as `enabled` is not set to `false`).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryKey`](QueryObserverOptions.md#querykey)
|
||||
|
||||
***
|
||||
|
||||
### queryKeyHashFn?
|
||||
|
||||
```ts
|
||||
optional queryKeyHashFn: QueryKeyHashFunction<TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:308](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L308)
|
||||
|
||||
If specified, this function is used to hash the `queryKey` to a string.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`queryKeyHashFn`](QueryObserverOptions.md#querykeyhashfn)
|
||||
|
||||
***
|
||||
|
||||
### refetchInterval?
|
||||
|
||||
```ts
|
||||
optional refetchInterval: number | false | (query) => number | false | undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:414](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L414)
|
||||
|
||||
If set to a number, the query will continuously refetch at this frequency in milliseconds.
|
||||
If set to a function, the function will be executed with the latest data and query to compute a frequency
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchInterval`](QueryObserverOptions.md#refetchinterval)
|
||||
|
||||
***
|
||||
|
||||
### refetchIntervalInBackground?
|
||||
|
||||
```ts
|
||||
optional refetchIntervalInBackground: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:425](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L425)
|
||||
|
||||
If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchIntervalInBackground`](QueryObserverOptions.md#refetchintervalinbackground)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnMount?
|
||||
|
||||
```ts
|
||||
optional refetchOnMount: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:462](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L462)
|
||||
|
||||
If set to `true`, the query will refetch on mount if the data is stale.
|
||||
If set to `false`, will disable additional instances of a query to trigger background refetch.
|
||||
If set to `'always'`, the query will always refetch on mount (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnMount`](QueryObserverOptions.md#refetchonmount)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnReconnect?
|
||||
|
||||
```ts
|
||||
optional refetchOnReconnect: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:448](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L448)
|
||||
|
||||
If set to `true`, the query will refetch on reconnect if the data is stale.
|
||||
If set to `false`, the query will not refetch on reconnect.
|
||||
If set to `'always'`, the query will always refetch on reconnect (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true` unless `networkMode` is `'always'`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnReconnect`](QueryObserverOptions.md#refetchonreconnect)
|
||||
|
||||
***
|
||||
|
||||
### refetchOnWindowFocus?
|
||||
|
||||
```ts
|
||||
optional refetchOnWindowFocus: boolean | "always" | (query) => boolean | "always";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:434](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L434)
|
||||
|
||||
If set to `true`, the query will refetch on window focus if the data is stale.
|
||||
If set to `false`, the query will not refetch on window focus.
|
||||
If set to `'always'`, the query will always refetch on window focus (except when `staleTime: 'static'` is used).
|
||||
If set to a function, the function will be executed with the latest data and query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`refetchOnWindowFocus`](QueryObserverOptions.md#refetchonwindowfocus)
|
||||
|
||||
***
|
||||
|
||||
### retry?
|
||||
|
||||
```ts
|
||||
optional retry: RetryValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:246](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L246)
|
||||
|
||||
If `false`, failed queries will not retry by default.
|
||||
If `true`, failed queries will retry infinitely.
|
||||
If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
|
||||
If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
|
||||
|
||||
Defaults to `3` on the client and `0` on the server.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retry`](QueryObserverOptions.md#retry)
|
||||
|
||||
***
|
||||
|
||||
### retryDelay?
|
||||
|
||||
```ts
|
||||
optional retryDelay: RetryDelayValue<TError>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:258](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L258)
|
||||
|
||||
This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the
|
||||
next attempt in milliseconds.
|
||||
|
||||
A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential
|
||||
backoff.
|
||||
|
||||
A function like `attempt => attempt * 1000` applies linear backoff.
|
||||
|
||||
Defaults to a function that applies exponential backoff, capped at 30 seconds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retryDelay`](QueryObserverOptions.md#retrydelay)
|
||||
|
||||
***
|
||||
|
||||
### retryOnMount?
|
||||
|
||||
```ts
|
||||
optional retryOnMount: QueryBooleanOption<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:474](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L474)
|
||||
|
||||
If set to `false`, the query will not be retried on mount if it contains an error.
|
||||
If set to a function, the function will be executed with the query to compute the value.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`retryOnMount`](QueryObserverOptions.md#retryonmount)
|
||||
|
||||
***
|
||||
|
||||
### select()?
|
||||
|
||||
```ts
|
||||
optional select: (data) => TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:500](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L500)
|
||||
|
||||
This option can be used to transform or select a part of the data returned by the query function. It affects
|
||||
the returned `data` value, but does not affect what gets stored in the query cache.
|
||||
The `select` function will only run if `data` changed, or if the reference to the `select` function itself
|
||||
changes. To optimize, memoize the function so its reference stays stable across calls.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### data
|
||||
|
||||
[`InfiniteData`](InfiniteData.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`TData`
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`select`](QueryObserverOptions.md#select)
|
||||
|
||||
***
|
||||
|
||||
### staleTime?
|
||||
|
||||
```ts
|
||||
optional staleTime: StaleTimeFunction<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:407](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L407)
|
||||
|
||||
The time in milliseconds after data is considered stale.
|
||||
If set to `Infinity`, the data will never be considered stale.
|
||||
If set to `'static'`, the data will never be considered stale.
|
||||
If set to a function, the function will be executed with the query to compute a `staleTime`.
|
||||
|
||||
Defaults to `0`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`staleTime`](QueryObserverOptions.md#staletime)
|
||||
|
||||
***
|
||||
|
||||
### structuralSharing?
|
||||
|
||||
```ts
|
||||
optional structuralSharing: boolean | (oldData, newData) => unknown;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:330](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L330)
|
||||
|
||||
Set this to `false` to disable structural sharing between query results.
|
||||
Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
||||
|
||||
Defaults to `true`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`structuralSharing`](QueryObserverOptions.md#structuralsharing)
|
||||
|
||||
***
|
||||
|
||||
### suspense?
|
||||
|
||||
```ts
|
||||
optional suspense: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:507](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L507)
|
||||
|
||||
If set to `true`, the query will suspend when `status === 'pending'`
|
||||
and throw errors when `status === 'error'`.
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`suspense`](QueryObserverOptions.md#suspense)
|
||||
|
||||
***
|
||||
|
||||
### throwOnError?
|
||||
|
||||
```ts
|
||||
optional throwOnError: ThrowOnError<TQueryFnData, TError, InfiniteData<TQueryFnData, TPageParam>, TQueryKey>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:493](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L493)
|
||||
|
||||
Whether errors should be thrown instead of setting the `error` property.
|
||||
If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
||||
If set to `false` and `suspense` is `false`, errors are returned as state.
|
||||
If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
||||
|
||||
Defaults to `false`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`QueryObserverOptions`](QueryObserverOptions.md).[`throwOnError`](QueryObserverOptions.md#throwonerror)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverPendingResult
|
||||
title: InfiniteQueryObserverPendingResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1043](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1043)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: undefined;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1047](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1047)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1048](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1048)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1049](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1049)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1053](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1053)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1054](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1054)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:823](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L823)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1051](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1051)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1050](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1050)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1056](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1056)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1052](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1052)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1055](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1055)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "pending";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1057](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1057)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverPlaceholderResult
|
||||
title: InfiniteQueryObserverPlaceholderResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1130](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1130)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1134](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1134)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1136](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1136)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1135](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1135)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1143](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1143)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1144](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1144)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1138](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1138)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1139](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1139)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1137](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1137)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1142](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1142)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1140](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1140)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1141](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1141)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "success";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1145](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1145)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverRefetchErrorResult
|
||||
title: InfiniteQueryObserverRefetchErrorResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1096](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1096)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1100](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1100)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: TError;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1101](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1101)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1102](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1102)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1028](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1028)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1036](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1036)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1104](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1104)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1105](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1105)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1103](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1103)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1108](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1108)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1106](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1106)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1107](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1107)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "error";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1109](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1109)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
@@ -0,0 +1,600 @@
|
||||
---
|
||||
id: InfiniteQueryObserverSuccessResult
|
||||
title: InfiniteQueryObserverSuccessResult
|
||||
---
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1112](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1112)
|
||||
|
||||
## Extends
|
||||
|
||||
- [`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md)\<`TData`, `TError`\>
|
||||
|
||||
## Type Parameters
|
||||
|
||||
### TData
|
||||
|
||||
`TData` = `unknown`
|
||||
|
||||
### TError
|
||||
|
||||
`TError` = [`DefaultError`](../type-aliases/DefaultError.md)
|
||||
|
||||
## Properties
|
||||
|
||||
### data
|
||||
|
||||
```ts
|
||||
data: TData;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1116](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1116)
|
||||
|
||||
The last successfully resolved data for the query.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`data`](InfiniteQueryObserverBaseResult.md#data)
|
||||
|
||||
***
|
||||
|
||||
### dataUpdatedAt
|
||||
|
||||
```ts
|
||||
dataUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:775](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L775)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"success"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`dataUpdatedAt`](InfiniteQueryObserverBaseResult.md#dataupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### error
|
||||
|
||||
```ts
|
||||
error: null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1117](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1117)
|
||||
|
||||
The error object for the query, if an error was thrown.
|
||||
- Defaults to `null`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`error`](InfiniteQueryObserverBaseResult.md#error)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdateCount
|
||||
|
||||
```ts
|
||||
errorUpdateCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:799](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L799)
|
||||
|
||||
The sum of all errors.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdateCount`](InfiniteQueryObserverBaseResult.md#errorupdatecount)
|
||||
|
||||
***
|
||||
|
||||
### errorUpdatedAt
|
||||
|
||||
```ts
|
||||
errorUpdatedAt: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:784](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L784)
|
||||
|
||||
The timestamp for when the query most recently returned the `status` as `"error"`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`errorUpdatedAt`](InfiniteQueryObserverBaseResult.md#errorupdatedat)
|
||||
|
||||
***
|
||||
|
||||
### failureCount
|
||||
|
||||
```ts
|
||||
failureCount: number;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:790](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L790)
|
||||
|
||||
The failure count for the query.
|
||||
- Incremented every time the query fails.
|
||||
- Reset to `0` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureCount`](InfiniteQueryObserverBaseResult.md#failurecount)
|
||||
|
||||
***
|
||||
|
||||
### failureReason
|
||||
|
||||
```ts
|
||||
failureReason: TError | null;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:795](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L795)
|
||||
|
||||
The failure reason for the query retry.
|
||||
- Reset to `null` when the query succeeds.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`failureReason`](InfiniteQueryObserverBaseResult.md#failurereason)
|
||||
|
||||
***
|
||||
|
||||
### fetchNextPage()
|
||||
|
||||
```ts
|
||||
fetchNextPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1008](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1008)
|
||||
|
||||
This function allows you to fetch the next "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchNextPageOptions`](FetchNextPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchNextPage`](InfiniteQueryObserverBaseResult.md#fetchnextpage)
|
||||
|
||||
***
|
||||
|
||||
### fetchPreviousPage()
|
||||
|
||||
```ts
|
||||
fetchPreviousPage: (options?) => Promise<InfiniteQueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1014](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1014)
|
||||
|
||||
This function allows you to fetch the previous "page" of results.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`FetchPreviousPageOptions`](FetchPreviousPageOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`InfiniteQueryObserverResult`](../type-aliases/InfiniteQueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchPreviousPage`](InfiniteQueryObserverBaseResult.md#fetchpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### fetchStatus
|
||||
|
||||
```ts
|
||||
fetchStatus: FetchStatus;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:889](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L889)
|
||||
|
||||
The fetch status of the query.
|
||||
- `fetching`: Is `true` whenever the queryFn is executing, which includes initial `pending` as well as background refetch.
|
||||
- `paused`: The query wanted to fetch, but has been `paused`.
|
||||
- `idle`: The query is not fetching.
|
||||
- See [Network Mode](https://tanstack.com/query/latest/docs/framework/react/guides/network-mode) for more information.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`fetchStatus`](InfiniteQueryObserverBaseResult.md#fetchstatus)
|
||||
|
||||
***
|
||||
|
||||
### hasNextPage
|
||||
|
||||
```ts
|
||||
hasNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1020](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1020)
|
||||
|
||||
Will be `true` if there is a next page to be fetched (known via the `getNextPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasNextPage`](InfiniteQueryObserverBaseResult.md#hasnextpage)
|
||||
|
||||
***
|
||||
|
||||
### hasPreviousPage
|
||||
|
||||
```ts
|
||||
hasPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1024](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1024)
|
||||
|
||||
Will be `true` if there is a previous page to be fetched (known via the `getPreviousPageParam` option).
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`hasPreviousPage`](InfiniteQueryObserverBaseResult.md#haspreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isEnabled
|
||||
|
||||
```ts
|
||||
isEnabled: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:867](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L867)
|
||||
|
||||
`true` if this observer is enabled, `false` otherwise.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isEnabled`](InfiniteQueryObserverBaseResult.md#isenabled)
|
||||
|
||||
***
|
||||
|
||||
### isError
|
||||
|
||||
```ts
|
||||
isError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1118](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1118)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query attempt resulted in an error.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isError`](InfiniteQueryObserverBaseResult.md#iserror)
|
||||
|
||||
***
|
||||
|
||||
### isFetched
|
||||
|
||||
```ts
|
||||
isFetched: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:808](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L808)
|
||||
|
||||
Will be `true` if the query has been fetched.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetched`](InfiniteQueryObserverBaseResult.md#isfetched)
|
||||
|
||||
***
|
||||
|
||||
### isFetchedAfterMount
|
||||
|
||||
```ts
|
||||
isFetchedAfterMount: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:813](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L813)
|
||||
|
||||
Will be `true` if the query has been fetched after the component mounted.
|
||||
- This property can be used to not show any previously cached data.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchedAfterMount`](InfiniteQueryObserverBaseResult.md#isfetchedaftermount)
|
||||
|
||||
***
|
||||
|
||||
### isFetching
|
||||
|
||||
```ts
|
||||
isFetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:818](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L818)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- `true` whenever the `queryFn` is executing, which includes initial `pending` as well as background refetch.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetching`](InfiniteQueryObserverBaseResult.md#isfetching)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingNextPage
|
||||
|
||||
```ts
|
||||
isFetchingNextPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1032](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1032)
|
||||
|
||||
Will be `true` while fetching the next page with `fetchNextPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingNextPage`](InfiniteQueryObserverBaseResult.md#isfetchingnextpage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchingPreviousPage
|
||||
|
||||
```ts
|
||||
isFetchingPreviousPage: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1040](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1040)
|
||||
|
||||
Will be `true` while fetching the previous page with `fetchPreviousPage`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchingPreviousPage`](InfiniteQueryObserverBaseResult.md#isfetchingpreviouspage)
|
||||
|
||||
***
|
||||
|
||||
### isFetchNextPageError
|
||||
|
||||
```ts
|
||||
isFetchNextPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1123](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1123)
|
||||
|
||||
Will be `true` if the query failed while fetching the next page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchNextPageError`](InfiniteQueryObserverBaseResult.md#isfetchnextpageerror)
|
||||
|
||||
***
|
||||
|
||||
### isFetchPreviousPageError
|
||||
|
||||
```ts
|
||||
isFetchPreviousPageError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1124](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1124)
|
||||
|
||||
Will be `true` if the query failed while fetching the previous page.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isFetchPreviousPageError`](InfiniteQueryObserverBaseResult.md#isfetchpreviouspageerror)
|
||||
|
||||
***
|
||||
|
||||
### ~~isInitialLoading~~
|
||||
|
||||
```ts
|
||||
isInitialLoading: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:836](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L836)
|
||||
|
||||
#### Deprecated
|
||||
|
||||
`isInitialLoading` is being deprecated in favor of `isLoading`
|
||||
and will be removed in the next major version.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isInitialLoading`](InfiniteQueryObserverBaseResult.md#isinitialloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoading
|
||||
|
||||
```ts
|
||||
isLoading: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1120](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1120)
|
||||
|
||||
Is `true` whenever the first fetch for a query is in-flight.
|
||||
- Is the same as `isFetching && isPending`.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoading`](InfiniteQueryObserverBaseResult.md#isloading)
|
||||
|
||||
***
|
||||
|
||||
### isLoadingError
|
||||
|
||||
```ts
|
||||
isLoadingError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1121](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1121)
|
||||
|
||||
Will be `true` if the query failed while fetching for the first time.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isLoadingError`](InfiniteQueryObserverBaseResult.md#isloadingerror)
|
||||
|
||||
***
|
||||
|
||||
### isPaused
|
||||
|
||||
```ts
|
||||
isPaused: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:841](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L841)
|
||||
|
||||
A derived boolean from the `fetchStatus` variable, provided for convenience.
|
||||
- The query wanted to fetch, but has been `paused`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPaused`](InfiniteQueryObserverBaseResult.md#ispaused)
|
||||
|
||||
***
|
||||
|
||||
### isPending
|
||||
|
||||
```ts
|
||||
isPending: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1119](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1119)
|
||||
|
||||
Will be `pending` if there's no cached data and no query attempt was finished yet.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPending`](InfiniteQueryObserverBaseResult.md#ispending)
|
||||
|
||||
***
|
||||
|
||||
### isPlaceholderData
|
||||
|
||||
```ts
|
||||
isPlaceholderData: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1126](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1126)
|
||||
|
||||
Will be `true` if the data shown is the placeholder data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isPlaceholderData`](InfiniteQueryObserverBaseResult.md#isplaceholderdata)
|
||||
|
||||
***
|
||||
|
||||
### isRefetchError
|
||||
|
||||
```ts
|
||||
isRefetchError: false;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1122](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1122)
|
||||
|
||||
Will be `true` if the query failed while refetching.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetchError`](InfiniteQueryObserverBaseResult.md#isrefetcherror)
|
||||
|
||||
***
|
||||
|
||||
### isRefetching
|
||||
|
||||
```ts
|
||||
isRefetching: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:854](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L854)
|
||||
|
||||
Is `true` whenever a background refetch is in-flight, which _does not_ include initial `pending`.
|
||||
- Is the same as `isFetching && !isPending`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isRefetching`](InfiniteQueryObserverBaseResult.md#isrefetching)
|
||||
|
||||
***
|
||||
|
||||
### isStale
|
||||
|
||||
```ts
|
||||
isStale: boolean;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:858](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L858)
|
||||
|
||||
Will be `true` if the data in the cache is invalidated or if the data is older than the given `staleTime`.
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isStale`](InfiniteQueryObserverBaseResult.md#isstale)
|
||||
|
||||
***
|
||||
|
||||
### isSuccess
|
||||
|
||||
```ts
|
||||
isSuccess: true;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1125](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1125)
|
||||
|
||||
A derived boolean from the `status` variable, provided for convenience.
|
||||
- `true` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`isSuccess`](InfiniteQueryObserverBaseResult.md#issuccess)
|
||||
|
||||
***
|
||||
|
||||
### refetch()
|
||||
|
||||
```ts
|
||||
refetch: (options?) => Promise<QueryObserverResult<TData, TError>>;
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:871](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L871)
|
||||
|
||||
A function to manually refetch the query.
|
||||
|
||||
#### Parameters
|
||||
|
||||
##### options?
|
||||
|
||||
[`RefetchOptions`](RefetchOptions.md)
|
||||
|
||||
#### Returns
|
||||
|
||||
`Promise`\<[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)\<`TData`, `TError`\>\>
|
||||
|
||||
#### Inherited from
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`refetch`](InfiniteQueryObserverBaseResult.md#refetch)
|
||||
|
||||
***
|
||||
|
||||
### status
|
||||
|
||||
```ts
|
||||
status: "success";
|
||||
```
|
||||
|
||||
Defined in: [packages/query-core/src/types.ts:1127](https://github.com/TanStack/query/blob/main/packages/query-core/src/types.ts#L1127)
|
||||
|
||||
The status of the query.
|
||||
- Will be:
|
||||
- `pending` if there's no cached data and no query attempt was finished yet.
|
||||
- `error` if the query attempt resulted in an error.
|
||||
- `success` if the query has received a response with no errors and is ready to display its data.
|
||||
|
||||
#### Overrides
|
||||
|
||||
[`InfiniteQueryObserverBaseResult`](InfiniteQueryObserverBaseResult.md).[`status`](InfiniteQueryObserverBaseResult.md#status)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user