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

304
Visualizações
¿Cómo puedo "asignar" las teclas de flecha arriba/abajo a Tab/Shift Tab?

Para mi aplicación React, todo lo que quiero hacer es tomar la funcionalidad actual de Tab y Shift Tab, pero hacer que las flechas arriba/abajo hagan lo mismo.

Sé que puedes emular este comportamiento con Reacts "useRef" y "focus", pero mi aplicación tendrá elementos renderizados dinámicamente que siempre están cambiando.

Estoy trabajando con un componente recursivo que llena un árbol recursivo según la entrada de los usuarios. También planeo permitir que el orden de los nodos secundarios se pueda ordenar (por varios campos y orden de clasificación).

Por lo tanto, no hay una manera (fácil) de saber qué "ref" sería el elemento anterior/siguiente. Esto hace que "ref.current.focus()" sea prácticamente inutilizable.

Pero una vez que se renderiza el Dom, Tab y Shift Tab funcionan exactamente como yo quiero...

... Solo quiero que las teclas de flecha arriba/abajo hagan esto en su lugar (es decir, la flecha hacia arriba haría la acción de tabulación Shift y la flecha hacia abajo haría la acción de tabulación).

¿Hay alguna forma de enviar programáticamente una pulsación de tecla Tab/Shift Tab en una aplicación React?

¿O tal vez de alguna manera cambiar el enfoque al "hermano" anterior/siguiente después de que se construya el DOM (es decir, ref.current.nextSibling.focus())?

Parece que no puedo hacer que ninguno de estos enfoques funcione.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

puedes escuchar la pulsación de tecla en componentDidMount()

 componentDidMount(){ document.addEventListener("keydown", this.handleKeyDown); }

Y su handleKeyDown será;

 handleKeyDown(e) { e.preventDefault(); if(e.keyCode == 38){ //up arrow e.dispatchEvent(new Event('keypress', {keyCode: 9})) } }
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