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

184
Vistas
Cambiar el estado activo del elemento en foco suelto en reaccionar

Estoy tratando de crear una barra lateral de navegación animada. Para ello tengo 2 estados para el enlace de los artículos. Hay un estado activo y un estado flotante. El estado activo se activa al hacer clic y el desplazamiento se activa cuando se desplaza el enlace, el problema principal al que me enfrento es que estoy usando un enrutador hash para vincular a los componentes en la página. Esto dificulta la implementación de una verificación simple como if(pathame === item.link .

 import { FC, useEffect, useRef, useState } from 'react' import { HashLink as Link } from 'react-router-hash-link' import { SidebarItemProps } from '../../models/SidebarItem' type SidebarLinkProps = { item: SidebarItemProps } const Submenu: FC<SidebarLinkProps> = ({ item }) => { const [active, setActive] = useState(false) const [hover, setHover] = useState(false) const link = useRef(null) useEffect(() => { if (document.activeElement === link.current) { setActive(true) } else { setActive(false) } }, []) return ( <Link to={item.path} smooth ref={link} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} onClick={() => setActive(true)} className={ 'sidebar-link ' + (active || hover ? 'scale-up-center active' : 'scale-down-center') } > <span className="label">{item.title}</span> </Link> ) } export default Submenu

este es mi componente actualmente. He intentado usar referencias, pero dado que hay varios elementos que se procesan aquí document.activeElement y link.current se mantienen true cuando hago clic en un elemento diferente.

about 4 years ago · Juan Pablo Isaza
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