¿Hay alguna forma de recuperar los datos cuando se monta el componente? En este momento, con react-router, si navego por mi aplicación, obtiene los datos una vez y luego, si navego y vuelvo, ¿los datos siguen siendo los anteriores y no una nueva solicitud?
No he envuelto mi llamada de búsqueda en useEffect.
const fetchInfo = async () => { const res = await fetch(`/api/${id}`); return res.json(); }; const { data, status } = useQuery('tableInfo', fetchInfo, { staleTime: 5000, });usando como:
{status === 'error' && ( <div className="mt-5">Error fetching data!</div> )} {status === 'loading' && ( <div className="mt-5">Loading data ... </div> )} {status === 'success' && ( <div className="mt-5"> <p>Result will be here</p> </div> )}Con su configuración, si obtiene sus datos, pasa a otra vista y regresa (al menos 5 segundos más tarde), volverá a obtenerlos; si navega y regresa ANTES de esos 5 segundos, no debería hacerlo.
Si desea evitar la recuperación cuando considera que los datos no se vuelven obsoletos con el tiempo (o no tan rápido de todos modos), configure staleTime en más de solo 5 segundos (hasta Infinity )
Si desea volver a obtener datos en cada navegación a esa vista, no configure staleTime en absoluto