⊗jsrtPmHkUEGH 6 of 47 menu

Globální obslužné rutiny přes useEffect v Reactu

Předpokládejme, že nyní chceme, aby se barva měnila nejen po kliknutí na tlačítko, ale také po stisknutí Enter na klávesnici. V běžném React životě nemůžeme poslouchat globální objekt window pomocí addEventListener. K tomu máme efekty. Pojďme přidat tuto akci pomocí useEffect.

Napišme funkci obslužné rutiny pro kliknutí na Enter. Ať se barva v tomto případě změní na červenou:

function handleEnter(event) { if (event.keyCode === 13) { setColor('red'); } }

Nyní připojme poslouchání událostí k window v hooku useEffect:

useEffect(() => { document.body.style.color = color; window.addEventListener('keydown', handleEnter); }, [color]);

Pokud máme nějakou instalační funkci, musíme vždy v useEffect vrátit kód pro čištění nebo odhlášení, abychom předešli problémům v budoucnu. V tomto případě potřebujeme po připojení addEventListener vrátit jeho odstranění:

useEffect(() => { document.body.style.color = color; window.addEventListener('keydown', handleEnter); return () => { window.removeEventListener('keydown', handleEnter); }; }, [color]);

Je dán komponent. Zařiďte, aby po kliknutí na jakékoli místo stránky se pozadí tohoto komponentu změnilo.

Vytvořte odkaz, po jehož kliknutí se objeví blok. Zařiďte, aby po kliknutí na jakékoli místo okna prohlížeče se náš blok skryl.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout