Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
¿Qué activa exactamente el componente NextJS Link y cómo capturar ese evento?

Desarrollé una barra de navegación simple que tiene un JSON como datos para construir dinámicamente sus enlaces. Visualmente, necesito conservar la barra de navegación con el enlace/ruta activo actual. Probé dos formas:

Primera implementación:

Componente del menú:

 const ToggleMenuHandler = (e: React.MouseEvent<HTMLElement>) => { clearMenu(); activateItem(e.currentTarget); e.stopPropagation(); } const MenuItems = MenuContent.map(item => { return ( <NavigationItem key={uuidv4()} {...item} clickHandler={ToggleMenuHandler} /> ); });

Componente de elemento de navegación:

 <ListItem onClick={(event: React.MouseEvent<HTMLElement>) => props.clickHandler(event)}> <Link href={sub.href}>{sub.name}</Link> </ListItem>

Estoy seguro de que la función ToggleMenuHandler funciona correctamente después de depurarla. activateItem es la función responsable de diseñar un elemento como activo. Si elimino el componente <Link> del elemento de navegación, funciona bien. Así que pensé que mi componente de menú se estaba volviendo a montar, lo que me llevó a la segunda implementación.

Segunda implementación

Este se basó en el principio de que mi menú se estaba volviendo a montar. Lo que hice fue vincular la propiedad href de <Link> a la identificación de NavigationItem . De esa manera, al usar router.pathname pude encontrar el elemento que debería activarse, y el componente del menú de código cambió a:

 const router = useRouter(); useEffect(() => { activateItem(document.querySelector(`#${router.pathname}`)) }, []);

... y también ToggleMenuHandler del componente del elemento de menú. De esa forma, cuando la página fuera redactada obtendría su ruta y, con ella, encontraría el elemento de la lista para activarlo visualmente. También depuré el gancho useEffect y funcionaba correctamente. Sin embargo, no se activó cuando se hizo clic en el enlace.

Pregunta: ¿Qué se activa exactamente cuando se hace clic en un componente de enlace NextJS y, dado el contexto de esta pregunta, cómo puedo manejar ese evento?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Realmente no sé cómo funciona el componente Next.js Link, pero sé que no necesita un controlador de eventos de clic.

Además, debe haber una etiqueta <a> dentro del componente Enlace para que funcione correctamente como enlace de acuerdo con los documentos.

También he experimentado personalmente que si usamos otro elemento dentro del componente Enlace, no funciona como un enlace pero navega.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!