⊗jsrtPmHkUEGH 6 of 47 menu

Globale Event-Handler mit useEffect in React

Nehmen wir an, wir möchten nun, dass sich die Farbe nicht nur durch einen Klick auf den Button ändert, sondern auch durch Drücken der Enter-Taste auf der Tastatur. Im normalen React-Leben ist es nicht zulässig, das globale Objekt window zu überwachen, indem man addEventListener verwendet. Dafür haben wir Effekte. Fügen wir diese Aktion mit useEffect hinzu.

Schreiben wir eine Handler-Funktion für den Klick auf Enter. Die Farbe soll sich in diesem Fall in Rot ändern:

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

Binden wir nun das Abhören von Ereignissen an window im Hook useEffect:

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

Wenn wir eine Einrichtungsfunktion haben, müssen wir immer in useEffect einen Bereinigungscode zurückgeben, um spätere Probleme zu vermeiden. In diesem Fall müssen wir nach dem Anhängen von addEventListener dessen Entfernung zurückgeben:

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

Eine Komponente ist gegeben. Sorgen Sie dafür, dass sich der Hintergrund dieser Komponente ändert, wenn irgendwo auf der Seite geklickt wird.

Erstellen Sie einen Link, bei dessen Klick ein Block erscheint. Sorgen Sie dafür, dass der Block ausgeblendet wird, wenn irgendwo im Browserfenster geklickt wird.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen