⊗jsrtPmHkURD 13 of 47 menu

Uso del hook useRef para DOM en React

En una de las lecciones anteriores mencionamos que las referencias se usan más frecuentemente para acceder a elementos DOM.

Las referencias serán útiles cuando, por ejemplo, necesites enfocar un elemento, hacer scroll o calcular su tamaño y posición, o posiblemente usar algunos de sus métodos o propiedades, ya que para tales cosas en React no hay métodos incorporados.

Veamos en un ejemplo con un campo de entrada, cómo se hace. Creemos un componente con un campo de entrada y un botón:

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

Para empezar, importemos en el componente useRef:

import { useRef } from 'react';

Y creemos una referencia ref en el componente. Inicialicémosla con el valor null:

const ref = useRef(null);

Añadamos al botón un manejador de clic:

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

Para tener acceso al campo de entrada, escribamos nuestra referencia ref en el atributo ref del campo de entrada. De esta manera, cuando React cree el nodo DOM para este campo de entrada, colocará una referencia a él en ref.current y podremos usar los métodos del campo de entrada:

<input ref={ref} />

Y finalmente, agreguemos la función de manejo del clic, para que al hacer clic en el botón, el campo de entrada reciba el foco. Ahora podemos hacerlo a través de la referencia, en la cual está el enlace a nuestro campo de entrada, accediendo a su método focus:

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

Presiona el botón y asegúrate de que el campo de entrada recibe el foco.

Toma el código del componente App, que escribimos en esta lección y haz que al hacer clic en el botón en el campo de entrada, además de enfocar, también ocurra un borrado del campo de entrada. Utiliza para esto la propiedad value del campo de entrada.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar