Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

52
Visualizações
Creando un Hook personalizado que incluye useRef

En el siguiente código, creo un enlace que usa useState dentro de él, el enlace funciona perfectamente. Luego creo un segundo gancho personalizado que dentro usa un useRef para imprimir un elemento html en la consola, este último no funciona porque no sé cómo referirme al elemento del gancho que estoy creando. Aquí el código:

 import "./styles.css"; import {useEffect, useRef, useState} from "react" function useChangeText(){ const [n,setN]= useState(0) const sum= ()=> setN(n + 1) return {number:n,sum} } function useGetHTML(n){ const element= useRef(null) useEffect(()=>{ console.log(element.current) },[n]) } export default function App() { const hookSum= useChangeText() const element= useGetHTML(hookSum.number) return ( <div ref={element} className="App"> <h1>{hookSum.number}</h1> <button onClick={hookSum.sum}>click +1</button> </div> ); }
about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Se trata de exportar la referencia creada a partir de su gancho useGetHTML para que pueda ser utilizada por su componente de consumo, tal como lo hizo en el gancho useChangeText :

 function useGetHTML(n){ const element = useRef(null); useEffect(()=>{ console.log(element.current) },[n]); return element; }

Luego, en su componente, el element ya no estará indefinido, sino que será la referencia exportada de su gancho personalizado:

 const element = useGetHTML(hookSum.number);
about 4 years ago · Santiago Gelvez Relatório

0

No necesita useRef ni useEffect para eso.

Puede pasar una devolución de llamada de setter a ref= se llamará con su elemento una vez que su componente esté montado:

 import "./styles.css"; import {useState} from "react" function useChangeText(){ const [n,setN]= useState(0) const sum= ()=> setN(n + 1) return {number:n,sum} } function useGetHTML(n){ const [element, setElementRef] = useState(null) if (element) { // just use if here console.log({ element, n }) } return setElementRef } export default function App() { const hookSum= useChangeText() const setElementRef= useGetHTML(hookSum.number) return ( <div ref={setElementRef} className="App"> <h1>{hookSum.number}</h1> <button onClick={hookSum.sum}>click +1</button> </div> ); }
about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda