Följande komponent laddar in en lista med produkter från en API-tjänst. Listan är sorterad i fallande ordning.
Lägg till en knapp som man kan klicka på för att växla mellan sortering i stigande och fallande ordning.
Några steg på vägen
sort=asc eller sort=descimport { useEffect, useState } from "react";
export const UseEffectSorting = () => {
const [ data, setData ] = useState([]);
useEffect(() => {
const loadData = async () => {
const res = await fetch('https://fakestoreapi.com/products?sort=desc');
const data = await res.json();
setData(data);
}
loadData();
}, []);
return (
<ul>
{data.map(item => <li key={item.id}>{item.title}</li>)}
</ul>
)
}
Fortsätt på koden från ovan. Lägg till ett ytterligare api:anrop för att hämta kategorier.
fetch('https://fakestoreapi.com/products/categories');
Promise.all för att hämta båda datamängderna samtidigt.useState för att hålla reda på båda datamängderna.const [width, setWidth] = useState(window.innerWidth);
useEffect(() => {
const handleResize = () => setWidth(window.innerWidth);
window.addEventListener('resize', handleResize);
// Uppstädning körs när komponenten unmountas
// eller när dependencies ändras
return () => window.removeEventListener('resize', handleResize);
}, []);
true om skärmbredden är mindre än 768pxconst isMobile = useIsMobile();