React Query tiene un enlace útil llamado useIsFetching (ver docs ), que permite verificar si una consulta determinada está obteniendo datos actualmente, así:
const queryCount = useIsFetching(['my-query-name']) Quiero hacer algo muy similar: quiero saber para un punto final dado, si los datos ya se han obtenido ( isFetched ).
Sé que esto se devuelve desde el useQuery , pero usar este enlace volvería a llamar al punto final y quiero evitar la llamada repetida.
¿Alguna idea de cómo lograr esto?
Puede evitar volver a llamar al punto final configurando un staleTime en su consulta, porque en ese tiempo, los datos provendrán solo del caché.
si los datos aún no existen, se recuperarán. Si no quiere eso, considere queryClient.getQueryState(['my-query-name']) . Sin embargo, esto no creará una suscripción, por lo que su componente no se volverá a procesar si cambia el estado de la consulta.
Resuelto utilizando la propiedad enable de useQuery , que enabled definir si realizar o no la solicitud.
useQuery( ['my-query-name', requestPayload], () => callMyEndpoint(requestPayload), { // ... enabled: booleanToIndicateWhetherToEnable, } )