Friday, May 10, 2024
 Popular · Latest · Hot · Upcoming
123
rated 0 times [  124] [ 1]  / answers: 1 / hits: 18174  / 8 Years ago, tue, september 6, 2016, 12:00:00

I'm making an app and I want to fire a function (in this case the showMessage) when the user presses Ctrl + Enter.
How would I do this, preferably without jQuery?



import React from react

const App = React.createClass({
showMessage () {
console.log('hit');
},
render () {
return (
<div>
<button onClick={this.showMessage}>Hit</button>
</div>
);
}
});


module.exports = App;

More From » reactjs

 Answers
8

  1. add event listener: document.addEventListener('keydown',this.keydownHandler)


  2. then in handler check e.keyCode===13 && e.ctrlKey


  3. don't forget to remove event listener in componentWillUnmount




const App = React.createClass({
showMessage () {
alert('SOME MESSAGE');
},
keydownHandler(e){
if(e.keyCode===13 && e.ctrlKey) this.showMessage()
},
componentDidMount(){
document.addEventListener('keydown',this.keydownHandler);
},
componentWillUnmount(){
document.removeEventListener('keydown',this.keydownHandler);
},
render () {
return (
<div>
<h1>Press Ctrl+Enter</h1>
<button onClick={this.showMessage}>Hit</button>
</div>`
);
}
});
export default App;

[#60791] Sunday, September 4, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kaitlynnb

Total Points: 402
Total Questions: 96
Total Answers: 109

Location: Trinidad and Tobago
Member since Fri, May 8, 2020
4 Years ago
kaitlynnb questions
;