Aps*_*wak 8 javascript reactjs
我正在创建一个应用程序,当用户按下ctrl + enter时,我想启动一个函数(在本例中为showMessage).我怎么做,最好没有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;
Run Code Online (Sandbox Code Playgroud)
Kok*_*lav 10
添加事件监听器: document.addEventListener('keydown',this.keydownHandler)
然后在处理程序检查 e.keyCode===13 && e.ctrlKey
不要忘记删除事件监听器 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;
Run Code Online (Sandbox Code Playgroud)
也可以使用功能组件来完成
export function App() {
const showMessage = () => {
alert('SOME MESSAGE');
};
const keydownHandler = (e) => {
if(e.key === 'Enter' && e.ctrlKey) showMessage()
};
React.useEffect(() => {
document.addEventListener('keydown', keydownHandler);
return () => {
document.removeEventListener('keydown', keydownHandler);
}
}, []);
return (
<div>
<h1>Press Ctrl+Enter</h1>
<button onClick={showMessage}>Hit</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3319 次 |
最近记录: |