⊗jsrtPmHkURD 13 of 47 menu

Aplicação do hook useRef para DOM em React

Em uma das lições anteriores, mencionamos que as refs são mais frequentemente usadas para acessar elementos DOM.

As refs serão úteis quando você, por exemplo, precisa focar em um elemento, fazer uma rolagem ou calcular seu tamanho e posição, ou talvez usar alguns de seus métodos ou propriedades, pois para tais coisas o React não tem métodos incorporados.

Vamos ver em um exemplo com um input, como isso é feito. Vamos criar um componente com um input e um botão:

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

Para começar, vamos importar no componente useRef:

import { useRef } from 'react';

E vamos criar uma ref ref no componente. Vamos inicializá-la com o valor null:

const ref = useRef(null);

Vamos adicionar um manipulador de clique ao botão:

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

Para ter acesso ao input, vamos escrever nossa ref ref no atributo ref do input. Dessa forma, quando o React criar o nó DOM para este input, ele colocará uma referência a ele em ref.current e poderemos usar os métodos do input:

<input ref={ref} />

E finalmente, vamos adicionar a função de manipulação do clique, para que ao clicar no botão, o input seja focado. Agora podemos fazer isso através da ref, que contém a referência ao nosso input, acessando seu método focus:

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

Clique no botão e verifique que o input está sendo focado.

Pegue o código do componente App, que escrevemos nesta lição e faça com que ao clicar no botão, no input, além de focar, também ocorra a limpeza do campo de entrada. Use para isso a propriedade value do input.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar