⊗jsrtPmHkUEGH 6 of 47 menu

Globaalsed töötlejad läbi useEffecti Reactis

Oletame, et nüüd tahame, et värv muutuks mitte ainult nupu klõpsamisel, vaid ka klaviatuuril Enter vajutamisel. Tavalises React elus globaalse objekti window kuulamisel kasutades addEventListener ei ole võimalik. Selleks on meil efektid. Lisame selle tegevuse kasutades useEffect.

Kirjutame töötlejafunktsiooni Enter vajutuse jaoks. Olgu värv sellisel juhul punaseks:

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

Seome nüüd sündmuste kuulamise window külge useEffect hookis:

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

Kui meil on mingi seadistav funktsioon, siis peame alati useEffect tagastama puhastuskoodi või tellimuse tühistamise, et vältida probleeme tulevikus. Antud juhul peame peale addEventListener lisamist tagastama selle eemaldamise:

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

Antud komponent. Tehke nii, et lehe suvalisele kohale klõpsates selle komponendi taustavärv muutuks.

Tehke link, millele vajutades ilmub plokk. Tehke nii, et brauseri akna suvalisele kohale vajutades meie plokk peidetakse.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu