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

121
Visualizações
React.js solo lee primero si declaración

Estoy creando un cuadro de texto que hace clic en Intro o cambia el texto a SVG al hacer clic en el espacio. Sin embargo, reaccionar solo considera la primera declaración if, usar else funciona, pero else if se ignora por completo.

código de cuadro de texto:

 <input type="text" id="textbox" contentEditable="true" className="grinputbox" onChange={(e) => {setInput(e.target.value)}} onKeyPress={twoCalls} />

Función de dos llamadas:

 const twoCalls = (e) => { if (e.key === "Enter") { console.log("enter"); handleClick() } else if (e.key === "Space") { console.log("space"); toSVG() } }

La consola inicia sesión al presionar enter, sin embargo, no hay espacio al presionar espacio

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

0

No existe una propiedad key como "Space" . El valor contra el que se debe verificar si un usuario presiona la tecla de espacio es un carácter de espacio literal: " " . Puede encontrar esto directamente desde https://keycode.info/ (espacio de prensa), o indirectamente desde la documentación de MDN . (La parte que dice "Si la tecla presionada tiene una representación impresa, el valor devuelto es una cadena de caracteres Unicode no vacía que contiene la representación imprimible de la tecla").

Así que en resumen, reemplace

 else if (e.key === "Space" )

con

 else if (e.key === " " )
about 4 years ago · Juan Pablo Isaza Relatório

0

  • Hay un deferente entre e.key , e.code en key , algunos navegadores devuelven espacio como " " y en algunos navegadores antiguos lo devuelven como "Spacebar" . Si desea la mayor compatibilidad con el espacio con key , puede hacerlo de la siguiente manera
 if(e.key === "Enter") { //Some code } else if(e.key === " " || e.key === "Spacebar") { //Some code }
  • en el otro lado, también hay e.code que devolverá el espacio como Space si desea usar Space , puede hacer que su código sea así
 if(e.key === "Enter") { //Some code } else if(e.code === "Space") { //Some code }
  • pero para un mejor soporte, use e.key aquí hay una lista con valores clave
  • también hay otras cosas como e.keyCode que está en desuso, así que evita usarlo
about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que es por esto: e.key === 'Space' debería ser e.key === 'Spacebar' .

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