¿Cómo puedo hacer que el onKeyPressevento funcione en ReactJS? Debe alertar cuando enter (keyCode=13)se presiona.
var Test = React.createClass({
add: function(event){
if(event.keyCode == 13){
alert('Adding....');
}
},
render: function(){
return(
<div>
<input type="text" id="one" onKeyPress={this.add} />
</div>
);
}
});
React.render(<Test />, document.body);
javascript
reactjs
keypress
onkeypress
usuario544079
fuente
fuente

Respuestas:
Estoy trabajando con React 0.14.7, uso
onKeyPressyevent.keyfunciona bien.fuente
Simulate.keyPress(ReactDOM.findDOMNode(component.refs.input),{key:"Enter"});function handleKeyPress(event){...}this===verificación de igualdadevent.key == 'Enter'.onKeyDownDetectakeyCodeeventos.fuente
Para mí
onKeyPressele.keyCodees siempre0, peroe.charCodetiene valor correcto. Si se usaonKeyDownel código correcto ene.charCode.Reaccionar eventos de teclado .
fuente
El evento Keypress está en desuso, en su lugar, debe usar el evento Keydown.
https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event
fuente
event.key === 'Enter'. Echa un vistazo aquí .Reaccionar no te está pasando el tipo de eventos que podrías pensar. Más bien, está pasando eventos sintéticos .
En una breve prueba,
event.keyCode == 0siempre es cierto. Lo que quieres esevent.charCodefuente
e.key || e.keyCode || e.charCodefuente
Si desea pasar un parámetro dinámico a una función, dentro de una entrada dinámica ::
Espero que esto ayude a alguien. :)
fuente
Tarde a la fiesta, pero estaba tratando de hacer esto en TypeScript y se me ocurrió esto:
Esto imprime la tecla exacta presionada en la pantalla. Entonces, si desea responder a todas las presiones "a" cuando el div está enfocado, compararía e.key con "a", literalmente if (e.key === "a").
fuente
Hay algunos desafíos cuando se trata de presionar un evento. El artículo de Jan Wolter sobre eventos clave es un poco antiguo, pero explica bien por qué la detección de eventos clave puede ser difícil.
Algunas cosas a tener en cuenta:
keyCode,which,charCodeTener un valor diferente / significado de pulsación de tecla de keyup y keydown. Todos están en desuso, pero son compatibles con los principales navegadores.keyycodeson el estándar reciente. Sin embargo, no son bien compatibles con los navegadores en el momento de la escritura.Para abordar los eventos de teclado en las aplicaciones de reacción, implementé react-keyboard-event-handler . Por favor échale un vistazo.
fuente
puedes verificar esta función "pressEnter"
fuente