Buen día a todos,
Tengo un pequeño problema en mi código de reacción y espero que alguien aquí pueda ayudarme a solucionarlo.
Básicamente, estoy obteniendo datos de un punto final (múltiple). Estoy usando axios y reacciono a la consulta.
En mi solicitud de obtención, tengo encabezados de seguridad y uno es Autorización. El usuario está autorizado por un token enviado al almacenamiento de la sesión cuando inicia sesión.
Obtengo el token del almacenamiento de la sesión y lo coloco en mi encabezado de autorización. Mi problema ahora es antes de que el usuario inicie sesión, el token === nulo y mi solicitud de obtención se ejecuta antes de que el usuario inicie sesión y lo deje con un token vacío.
Cuando el usuario finalmente inicia sesión, no se obtienen datos porque lo que está en el encabezado de autorización es nulo, pero cuando actualizo la página, los datos se obtienen porque en ese momento el token ya se entregó y no = nulo.
No sé si entiendes completamente porque soy bastante malo explicando, pero si lo haces, ¿hay alguna forma de solucionar el problema?
Gracias...
Si está usando RTK, puede usar skip :
const [skip, setSkip] = useState(true); const { isUninitialized, isSuccess, isLoading } = useSomeQuery(token, { skip }); y establezca el skip en falso cuando el token esté disponible
dado que el token depende de su recuperación, debe ir a queryKey . Luego puede deshabilitar la consulta a través de la opción enabled mientras el token sea nulo.
const token = useTokenFromLocalStorage() useQuery( ["user", token], () => fetchUser(token), { enabled: !!token } ) si el token se actualiza (cambia de nulo a un valor), y eso vuelve a representar su componente, la consulta se ejecutará automáticamente porque la clave de consulta cambia. La consulta no se ejecutará si el token es null .