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

340
Vistas
crear una nueva clase a partir de HTMLDivElement y ampliar su prototipo

Estoy tratando de extender el prototipo HTMLDivElement con un nuevo método. Sin embargo, no quiero contaminar el propio HTMLDivElement con mis métodos, así que intento crear una nueva clase que lo amplíe.

 export class ScrollableElement extends HTMLDivElement { scrollHorizontal(left: number) { this.scrollTo({ left, behavior: 'smooth' }); } }

Utilizo este elemento para la referencia de div desplazable. Sin embargo, cada vez que trato de llamar a este método, aparece un error que dice que listRef.scrollHorizontal is not a function .

¿Hay alguna manera de lograr esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Me las arreglé para hacer esto usando la delegación como un comentario debajo de mi pregunta sugerida.

Clase de elemento:

 export class ScrollableElement { private _element: HTMLDivElement | null; constructor(element: HTMLDivElement | null) { this._element = element; } scrollHorizontal(left: number) { this._element?.scrollTo({ left, behavior: 'smooth' }); } }

Asignación de referencia a div:

 const [scrollableEl, setScrollableEl] = useState<ScrollableElement | null>(null); return <div ref={ref => setScrollableEl(new ScrollableElement(ref))} /> function scroll() { scrollableEl?.scrollHorizontal(100); }
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