Tengo esta función que está configurando al usuario.
const [user, setUser] = useState(null) const getUser = async () => { setIsAuth(false) setLoading(true) try { let temp = await axiosURL.get('/api/users/me') temp = temp.data if (temp) { setUser(temp) setIsAuth(true) } } catch (error) { console.log(error) } setLoading(false) }Después de configurar el usuario, estoy copiando los datos de acuerdo con el usuario.
const getAllScopeData = async () => { setLoading(true) await getUser() console.log(user) await getScopeOneData() await getScopeTwoData() await getScopeThreeData() setLoading(false) } Pero cuando getAllScopeData() , los detalles del usuario se obtienen correctamente e inician sesión en la consola, pero el estado del user no cambia de nulo. Entonces puedo obtener más datos.
el problema lo veo aqui
const getAllScopeData = async () => { setLoading(true) await getUser() console.log(user) await getScopeOneData() await getScopeTwoData() await getScopeThreeData() setLoading(false) } incluso si espera la función getUser , su estado aún no se actualiza
Deberías usar useEffect así
useEffect(async() => { if(!user) return; setLoading(true) await getScopeOneData() await getScopeTwoData() await getScopeThreeData() setLoading(false) }, [user])