⊗jsrtPmHkURD 13 of 47 menu

UseRef hoko panaudojimas DOM React'e

Vienoje iš ankstesnių pamokų minėjome, kad refai dažniausiai naudojami prieigai prie DOM elementų.

Refai ateis į pagalbą tada, kai jums, pavyzdžiui, reikia sufokusuoti elementą, atlikti scroll'ą arba apskaičiuoti jo dydį ir poziciją, arba galbūt panaudoti kai kuriuos jo metodus ar savybes, juk React'e tokiems dalykams nėra įmontuotų metodų.

Pažiūrėkime pavyzdžiu su input'u, kaip tai daroma. Sukurkime komponentą su input'u ir mygtuku:

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

Pirmiausia, importuokime į komponentą useRef:

import { useRef } from 'react';

Ir sukurkime ref'ą ref komponente. Inicializuokime jį reikšme null:

const ref = useRef(null);

Uždėkime ant mygtuko click'o apdorotoją:

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

Kad turėtume prieigą prie input'o, įrašykime mūsų ref'ą ref į input'o atributą ref. Taip, kai React kurs DOM mazgą šiam input'ui, jis padės nuorodą į jį į ref.current ir mes galėsime naudotis input'o metodais:

<input ref={ref} />

Ir galiausiai, pridėkime click'o apdorojimo funkciją, kad paspaudus mygtuką, ant input'o būtų nukreiptas fokusas. Dabar mes galime tai padaryti per ref'ą, kuriame yra nuoroda į mūsų input'ą, kreipdamiesi į jo metodą focus:

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

Paspauskite mygtuką ir įsitikinkite, kad ant input'o nukreipiamas fokusas.

Paimkite komponento App kodą, kurį parašėme šioje pamokoje ir padarykite taip, kad paspaudus mygtuką input'e, be fokusavimo, atsitiktų ir įvesties lauko išvalymas. Pasinaudokite tam input'o savybe value.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti