Así que mi código funcionaba sin problemas hasta que agregué useParams
[...] const promiseDelay = () => { const E_COMMERCE_API = "https://mocki.io/v1/027ebfda-9bd8-4b53-ae33-ab41586d773a"; return new Promise((resolve, reject) => { setTimeout(() => resolve(fetch(E_COMMERCE_API)), 1000); }); }; export default function ItemDetailContainer() { const { itemId } = useParams(); const [dataToShow, setDataToShow] = useState([]); useEffect(() => { promiseDelay() .then((response) => response.json()) .then((data) => { const aux = data.find((element) => { console.log(itemId); //<--- 2 // return element.id === itemId; <--- if i uncomment, i get no data return element.id === 2; // with this line, everything works just fine }); setDataToShow(aux); }); }, []); [...] }Aparentemente, incluso si itemId es 2, no es lo mismo y arruina todo.
Probablemente se deba a que el parámetro es una cadena cuando se analiza desde la URL. El useParams no sabe analizarlo en un número.
Entonces element.id === Number(itemId) debería arreglarlo.