Estoy tratando de mostrar algunos datos de mi base de datos en mi componente React, pero los datos no se guardan en el enlace de estado, pero la respuesta de la solicitud se imprime en la consola.
¿Cómo puedo arreglar esto?
const [error, setError] = useState(null); const [isLoaded, setIsLoaded] = useState(false); const [collections, setCollections] = useState([]); useEffect(() => { const getCollections = async () => { try { const response = await axios.get('http://localhost:4000/api/collections'); setIsLoaded(true); console.log(response); // This prints the response setCollections(response); console.log(collections); // This prints [] } catch (error) { setError(error); setIsLoaded(true); } } getCollections(); }, [])React no ejecuta setCollections inmediatamente. El nuevo estado debería estar disponible en el siguiente renderizado. Intente iniciar sesión durante la fase de renderizado:
const [error, setError] = useState(null); const [isLoaded, setIsLoaded] = useState(false); const [collections, setCollections] = useState([]); console.log(collections); useEffect(() => { ... }, [])