⊗jsrtPmHkURD 13 of 47 menu

Användning av useRef-hook för DOM i React

I en av de tidigare lektionerna nämnde vi att refs oftast används för att komma åt DOM-element.

Refs kommer till undsättning när du, till exempel, behöver fokusera på ett element, göra en scroll eller beräkna dess storlek och position, eller kanske använda några av dess metoder eller egenskaper, för för sådana saker finns det inga inbyggda metoder i React.

Låt oss titta på ett exempel med en input, hur det görs. Låt oss skapa en komponent med en input och en knapp:

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

Först, importera useRef till komponenten:

import { useRef } from 'react';

Och skapa en ref ref i komponenten. Initiera den med värdet null:

const ref = useRef(null);

Lägg till en klickhanterare på knappen:

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

För att ha tillgång till input, sätt vår ref ref i inputens ref-attribut. På så sätt, när React skapar en DOM-nod för denna input, kommer den att sätta en referens till den i ref.current och vi kan använda inputens metoder:

<input ref={ref} />

Och slutligen, lägg till funktionen för klickhantering, så att när knappen klickas, sätts fokus på input. Nu kan vi göra detta genom ref, där vi har en referens till vår input, genom att använda dess metod focus:

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

Tryck på knappen och se till att fokus sätts på input.

Ta koden för komponenten App, som vi skrev i den här lektionen och gör så att när knappen klickas så ska input förutom att få fokus även rensas. Använd egenskapen value för input.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa