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

314
Visualizações
¿Cómo implementar el arrastre en las celdas de la tabla para seleccionar/resaltar un rango de celdas en React?

Tengo una implementación bastante complicada de "cuadrícula de datos" o "hoja de cálculo" básica que abarca varios módulos/archivos, con un total de unas miles de líneas de código hasta el momento, por lo que no es tan fácil crear/demostrar un ejemplo funcional para StackOverflow. Pero puedes imaginarte creando una <table> html básica:

 <table> <thead> <tr> <th>A</th> <th>B</th> </tr> </thead> <tbody> <tr> <td>foo</td> <td>bar</td> </tr> <tr> <td>hello</td> <td>world</td> </tr> </tbody> </table>

Esto debería verse como una hoja de cálculo simple si no se le da ningún estilo. Lo que me gustaría descubrir cómo implementar es arrastrar desde una celda para resaltar/seleccionar varias celdas , como en una hoja de cálculo. Aquí hay un GIF que graba una hoja de cálculo de Google, que me gustaría imitar. (Solo me importa la funcionalidad, no necesariamente el estilo/cómo se ve).

ingrese la descripción de la imagen aquí

Podría descubrir cómo implementar esto en vanilla/plain JS , capturando mousemove after mousedown , y luego cada vez que el mouse se mueve (quizás acelerado de alguna manera), encuentre qué celda de la tabla está debajo del mouse. Almacenaría la celda de inicio que se seleccionó primero, luego, a medida que se mueve el mouse, averigüe el índice de la celda de la tabla que se encuentra en el aire y luego configure el rectángulo de la celda para que esté en ese punto.

Entonces, digamos que tenemos un objeto que almacena el índice inicial y final de los límites de la celda.

 { topLeft: [2, 2], bottomRight: [6, 6] }

Esto seleccionaría la 3.ª columna, 3.ª fila, hasta la 7.ª columna, 7.ª fila, similar a mi imagen de arriba.

El problema para el que tengo problemas para imaginar una solución (en React) es doble:

  1. Cómo rastrear correctamente el movimiento del mouse y obtener la celda de la tabla debajo del mouse (usando los paradigmas de React).
  2. Cómo obtener el índice (fila/columna) asociado con esa celda de la tabla (es decir, el [6, 6] en el ejemplo anterior).

¿Cómo haría esto en React, ya sea en términos generales o si es sencillo, con un ejemplo rápido? Me parece extremadamente difícil y complejo, por lo tanto, me llevará unos días encontrar un ejemplo simple reproducible (y que no funcione realmente) para SO. Lo intentaré, pero también quería obtener ayuda.

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