Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

111
Vistas
Primero haga clic en el botón de menú de navegación que da error y funciona bien después de eso ReactJs

Estoy tratando de hacer una barra de navegación para ocultar/mostrar en ReactJS. Pero en el primer clic recibo este error y funciona bien después del primer clic.

  • Nota: es dos veces y no tengo idea de por qué.

ingrese la descripción de la imagen aquí

Aquí está mi código y solo funciona (después del primer error) cuando

setMenu(!menu);

es antes

nav.classList.toggle("nav-abrir");

de lo contrario, el error sigue llegando.

 export default function Navbar() { const [menu, setMenu] = useState(true); const nav = document.querySelector("nav"); const openNav = () => { setMenu(!menu); nav.classList.toggle("nav-open"); }; return ( <nav id="nav-wrapper"> <header className="nav-header"> <div className="arrow-btn" onClick={() => { openNav(); }} > {menu ? ( <Icon.HiChevronDoubleLeft size={20} className="arrows" /> ) : ( <Icon.HiChevronDoubleRight size={20} className="arrows" /> )} </div> <img src={Profiledp} alt="." /> <p className="name">Naman Pokhriyal</p> </header> </nav>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esta no es la forma correcta de hacer esto en React en primer lugar. Ya está usando el valor de estado del menu para determinar si el menú está abierto o no, entonces, ¿por qué no continuar usando el valor de estado del menu para determinar si el menú está abierto o no? Algo como esto:

 const openNav = () => { setMenu(!menu); }; return ( <nav id="nav-wrapper" className={menu ? "nav-open" : ""}> // etc. );

Básicamente, cada vez que intente manipular directamente el DOM en React, dé un paso atrás e intente encontrar una manera de administrarlo a través del estado. La manipulación directa de DOM en React casi siempre conduce a errores a menos que realmente sepa lo que está haciendo bajo el capó en el marco.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda