⊗jsrtPmHkUEGH 6 of 47 menu

Globaalit käsittelijät useEffectin kautta Reactissa

Oletetaan, että nyt haluamme, että väri vaihtuu ei vain napsauttamalla painiketta, vaan myös painamalla Enter näppäimistöllä. Normaalissa React-elämässä globaanli objektia window kuunteleminen käyttäen addEventListener ei ole sallittua. Tätä varten meillä on efektit. Lisätään tämä toiminto käyttäen useEffect.

Kirjoitetaan napsautuksen käsittelijäfunktio painamalle Enter. Olkoon väri tässä tapauksessa muuttumassa punaiseksi:

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

Liitetään nyt tapahtumien kuuntelu kohteeseen window useEffect-hookissa:

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

Jos meillä on jokin asennusfunktio, meidän on aina palautettava useEffect:ssä puhdistus- tai peruutuskoodi, jotta vältämme ongelmia tulevaisuudessa. Tässä tapauksessa meidän on liittämisen jälkeen addEventListener palautettava sen poisto:

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

Komponentti on annettu. Tee niin, että napsauttamalla mihin tahansa sivun kohtaan tämän komponentin tausta vaihtaa väriä.

Tee linkki, jota painamalla lohko ilmestyy. Tee niin, että painamalla mihin tahansa selainikkunan kohtaan lohkomme piilotetaan.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää