getQueryKey
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Nous fournissons un helper getQueryKey qui accepte un router ou une procedure pour vous permettre d'attribuer facilement la clé de requête correcte à la fonction native.
tsx// Queriesfunction getQueryKey(procedure: AnyQueryProcedure,input?: DeepPartial<TInput>,type?: QueryType; /** @default 'any' */): TRPCQueryKey;// Routersfunction getQueryKey(router: AnyRouter,): TRPCQueryKey;type QueryType = "query" | "infinite" | "any";// for useQuery ──┘ │ │// for useInfiniteQuery ────┘ │// will match all ───────────────────────┘
tsx// Queriesfunction getQueryKey(procedure: AnyQueryProcedure,input?: DeepPartial<TInput>,type?: QueryType; /** @default 'any' */): TRPCQueryKey;// Routersfunction getQueryKey(router: AnyRouter,): TRPCQueryKey;type QueryType = "query" | "infinite" | "any";// for useQuery ──┘ │ │// for useInfiniteQuery ────┘ │// will match all ───────────────────────┘
Le type de requête any correspondra à toutes les requêtes du cache uniquement si la méthode react query utilisée implémente le floutage de correspondance. Consultez TanStack/query#5111 (comment) pour plus de contexte.
tsximport { useIsFetching, useQueryClient } from '@tanstack/react-query';import { getQueryKey } from '@trpc/react-query';import { trpc } from '~/utils/trpc';function MyComponent() {const queryClient = useQueryClient();const posts = trpc.post.list.useQuery();// See if a query is fetchingconst postListKey = getQueryKey(trpc.post.list, undefined, 'query');const isFetching = useIsFetching(postListKey);// Set some query defaults for an entire routerconst postKey = getQueryKey(trpc.post);queryClient.setQueryDefaults(postKey, { staleTime: 30 * 60 * 1000 });// ...}
tsximport { useIsFetching, useQueryClient } from '@tanstack/react-query';import { getQueryKey } from '@trpc/react-query';import { trpc } from '~/utils/trpc';function MyComponent() {const queryClient = useQueryClient();const posts = trpc.post.list.useQuery();// See if a query is fetchingconst postListKey = getQueryKey(trpc.post.list, undefined, 'query');const isFetching = useIsFetching(postListKey);// Set some query defaults for an entire routerconst postKey = getQueryKey(trpc.post);queryClient.setQueryDefaults(postKey, { staleTime: 30 * 60 * 1000 });// ...}
Mutations
À l'instar des requêtes, nous fournissons un getMutationKey pour les mutations. La fonction sous-jacente est identique à getQueryKey (techniquement, vous pourriez utiliser getQueryKey pour les mutations), la seule différence étant sémantique.
tsxfunction getMutationKey(procedure: AnyMutationProcedure): TRPCMutationKey;
tsxfunction getMutationKey(procedure: AnyMutationProcedure): TRPCMutationKey;