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

341
Visualizações
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 Respostas
Responde à pergunta

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 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