Estoy usando useRequest de la biblioteca ahooks . Especifiqué cacheKey en las opciones, pero la misma solicitud se repite una y otra vez cuando se supone que debe recuperarse del caché.
let someVar = 'someValue' const { data, loading } = useRequest( async () => someRequestThatDependOnVariable(someVar), { refreshDeps: [someVar], cacheKey: `request-${someVar}`, }, );someVar se actualiza a través del campo de selección
pero la misma solicitud se repite una y otra vez cuando se supone que debe recuperarse del caché.
Esto es como fue diseñado.
Según la documentación :
Si se establece
options.cacheKey,useRequestalmacenará en caché los datos correctos. La próxima vez que se inicialice el componente, si hay datos almacenados en caché, primero devolveremos los datos almacenados en caché y luego enviaremos una nueva solicitud en segundo plano.
Entonces, el objetivo de cacheKey aquí es ocultar la carga de datos al mostrar los datos previamente almacenados en caché mientras se obtienen los últimos datos. Esto no impide que se carguen los datos.
Sin embargo, si también usa la propiedad staleTime , puede indicarle que no realice una nueva consulta durante algunos segundos desde la última solicitud exitosa.
Puede configurar el tiempo de retención de datos a través de
options.staleTime. Durante este tiempo, consideramos que los datos están actualizados y no reiniciaremos la solicitud.
const { data, loading } = useRequest( async () => someRequestThatDependOnVariable(someVar), { refreshDeps: [someVar], cacheKey: `request-${someVar}`, staleTime: 10 * 60 * 1000 // 10 minutes in milliseconds }, );