⊗jsrtPmHkURD 13 of 47 menu

Použitie hooku useRef pre DOM v Reacte

V jednej z predchádzajúcich lekcií sme spomenuli, že refy sa najčastejšie používajú na prístup k DOM elementom.

Refy prídu na pomoc vtedy, keď potrebujete, napríklad, zamerať sa na element, vykonať scroll alebo vypočítať jeho veľkosť a pozíciu, alebo možno použiť niektoré z jeho metód alebo vlastností, pretože na takéto veci v Reacte nie sú vstavané metódy.

Pozrime sa na príklad so vstupným poľom, ako sa to robí. Vytvorme komponent s vstupným poľom a tlačidlom:

return ( <div> <input /> <button>focus</button> </div> );

Na začiatok importujme do komponentu useRef:

import { useRef } from 'react';

A vytvorme ref ref v komponente. Inicializujme ho hodnotou null:

const ref = useRef(null);

Pridajme na tlačidlo obsluhu kliku:

<button onClick={handleClick}>focus</button>

Aby sme mali prístup k vstupnému poľu, zapíšme náš ref ref do atribútu ref vstupného poľa. Týmto spôsobom, keď React bude vytvárať DOM uzol pre toto vstupné pole, uloží odkaz naň do ref.current a my budeme môcť používať metódy vstupného poľa:

<input ref={ref} />

A nakoniec, pridajme funkciu na obsluhu kliku, aby sa pri kliknutí na tlačidlo na vstupné pole zamerialo. Teraz to môžeme urobiť cez ref, v ktorom je odkaz na naše vstupné pole, prístupom k jeho metóde focus:

function handleClick() { ref.current.focus(); }

Klikajte na tlačidlo a presvedčte sa, že sa na vstupné pole zameriava.

Vezmite kód komponentu App, ktorý sme napísali v tejto lekcii a urobte to tak, aby pri kliknutí na tlačidlo vo vstupnom poli okrem zamerania došlo aj k vymazaniu poľa. Využite na to vlastnosť value vstupného poľa.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť