Framework
Version

Filter

Einige Methoden innerhalb von TanStack Query akzeptieren ein QueryFilters oder MutationFilters Objekt.

Query-Filter

Ein Query-Filter ist ein Objekt mit bestimmten Bedingungen, um eine Abfrage abzugleichen

tsx
// Cancel all queries
await queryClient.cancelQueries()

// Remove all inactive queries that begin with `posts` in the key
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })

// Refetch all active queries
await queryClient.refetchQueries({ type: 'active' })

// Refetch all active queries that begin with `posts` in the key
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
// Cancel all queries
await queryClient.cancelQueries()

// Remove all inactive queries that begin with `posts` in the key
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })

// Refetch all active queries
await queryClient.refetchQueries({ type: 'active' })

// Refetch all active queries that begin with `posts` in the key
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })

Ein Query-Filter-Objekt unterstützt die folgenden Eigenschaften

  • queryKey?: QueryKey
    • Setzen Sie diese Eigenschaft, um einen Query-Schlüssel für den Abgleich zu definieren.
  • exact?: boolean
    • Wenn Sie nicht inklusiv nach Query-Schlüssel suchen möchten, können Sie die Option exact: true übergeben, um nur die Abfrage mit dem exakten von Ihnen übergebenen Query-Schlüssel zurückzugeben.
  • type?: 'active' | 'inactive' | 'all'
    • Standardmäßig all
    • Wenn auf active gesetzt, werden aktive Abfragen abgeglichen.
    • Wenn auf inactive gesetzt, werden inaktive Abfragen abgeglichen.
  • stale?: boolean
    • Wenn auf true gesetzt, werden veraltete Abfragen abgeglichen.
    • Wenn auf false gesetzt, werden frische Abfragen abgeglichen.
  • fetchStatus?: FetchStatus
    • Wenn auf fetching gesetzt, werden aktuell abrufende Abfragen abgeglichen.
    • Wenn auf paused gesetzt, werden Abfragen abgeglichen, die abrufen wollten, aber pausiert wurden.
    • Wenn auf idle gesetzt, werden Abfragen abgeglichen, die nicht abrufen.
  • predicate?: (query: Query) => boolean
    • Diese Prädikatsfunktion wird als finaler Filter für alle übereinstimmenden Abfragen verwendet. Wenn keine anderen Filter angegeben sind, wird diese Funktion gegen jede Abfrage im Cache ausgewertet.

Mutationsfilter

Ein Mutationsfilter ist ein Objekt mit bestimmten Bedingungen, um eine Mutation abzugleichen

tsx
// Get the number of all fetching mutations
await queryClient.isMutating()

// Filter mutations by mutationKey
await queryClient.isMutating({ mutationKey: ['post'] })

// Filter mutations using a predicate function
await queryClient.isMutating({
  predicate: (mutation) => mutation.state.variables?.id === 1,
})
// Get the number of all fetching mutations
await queryClient.isMutating()

// Filter mutations by mutationKey
await queryClient.isMutating({ mutationKey: ['post'] })

// Filter mutations using a predicate function
await queryClient.isMutating({
  predicate: (mutation) => mutation.state.variables?.id === 1,
})

Ein Mutationsfilter-Objekt unterstützt die folgenden Eigenschaften

  • mutationKey?: MutationKey
    • Setzen Sie diese Eigenschaft, um einen Mutationsschlüssel für den Abgleich festzulegen.
  • exact?: boolean
    • Wenn Sie Mutationen nicht inklusiv nach Mutationsschlüssel durchsuchen möchten, können Sie die Option exact: true übergeben, um nur die Mutation mit dem von Ihnen angegebenen exakten Mutationsschlüssel zurückzugeben.
  • status?: MutationStatus
    • Ermöglicht das Filtern von Mutationen nach ihrem Status.
  • predicate?: (mutation: Mutation) => boolean
    • Diese Prädikatsfunktion wird als finaler Filter für alle übereinstimmenden Mutationen verwendet. Wenn keine anderen Filter angegeben sind, wird diese Funktion gegen jede Mutation im Cache ausgewertet.

Hilfsmittel

matchQuery

tsx
const isMatching = matchQuery(filters, query)
const isMatching = matchQuery(filters, query)

Gibt einen Booleschen Wert zurück, der angibt, ob eine Abfrage mit den bereitgestellten Abfragefiltern übereinstimmt.

matchMutation

tsx
const isMatching = matchMutation(filters, mutation)
const isMatching = matchMutation(filters, mutation)

Gibt einen Booleschen Wert zurück, der angibt, ob eine Mutation mit den bereitgestellten Mutationsfiltern übereinstimmt.