Seamos un poco más profesionales 😉
Creemos un archivo donde vivirá la url de la api en .src/api/index.js:
export const apiUrl = 'https://api.escuelajs.co/api/v1'
Usemos async y await y SIEMPRE usemos try catch en peticiones GET:
import { useState, useEffect } from "react"
import { Layout } from "../../Components/Layout"
import { Card } from "../../Components/Card"
import { apiUrl } from '../../api/'
export const Home = () => {
const [Items, setItems] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch(`${apiUrl}/products`)
const data = await response.json()
setItems(data)
} catch (error) {
console.error(`Oh no, ocurrió un error: ${error}`);
}
}
fetchData()
}, [])
return (
<Layout>
Home
<section className="grid gap-4 grid-cols-4 w-full max-w-screen-lg">
{
Items?.map(item => (
<Card
key={item.id}
data={item}
/>
))
}
</section>
</Layout>
)
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?