Obtuve datos usando useEffect y también obtuve los datos en la consola. Llamé al método setState para actualizar el estado, pero la función .map no funciona. Incluso en la consola no pasa nada.
import React, { useState, useEffect } from "react"; function HomePage() { const [isFlipped, setIsFlipped] = useState(false); const [cardData, setCardData] = useState([]); // useEffect function useEffect(async () => { const url = "https://rickandmortyapi.com/api/character"; const fetchData = async () => { try { const response = await fetch(url); const json = await response.json(); const jsonData = json.results; setCardData(jsonData); console.log(jsonData); } catch (error) { console.log("error", error); } }; fetchData(); }, []); const handleClick = () => { setIsFlipped(!isFlipped); }; return ( <> {cardData.map((c) => { <h1>{c.id}</h1>; })} </> ); } export default HomePage;Su código tiene algunos errores:
El siguiente código funciona en el espacio aislado de código. Avísame si tienes alguna pregunta.
export default function HomePage() { { const [isFlipped, setIsFlipped] = useState(false); const [cardData, setCardData] = useState(null); // useEffect function useEffect(() => { //removed async here const url = "https://rickandmortyapi.com/api/character"; const fetchData = async () => { try { const response = await fetch(url); const json = await response.json(); const jsonData = json.results; setCardData(jsonData); console.log(jsonData); } catch (error) { console.log("error", error); } }; fetchData(); }, []); const handleClick = () => { setIsFlipped(!isFlipped); }; return ( <> {cardData && cardData.map((c) => { return <h1>{c.id}</h1>; //note here: return keyword })} </> ); }