自定义键盘事件 hooks
键盘按键编码 点击查看
参数为键盘按键编码,返回值为当前键编码是否按下
import { useState, useEffect } from 'react'
const useKeyPress = (targetKeyCode) => {
const [keyPressed, setKeyPressed] = useState(false)
const keyDownHandler = ({ keyCode }) => {
if(keyCode === targetKeyCode) {
setKeyPressed(true)
}
}
const keyUpHandler = ({ keyCode }) => {
if(keyCode === targetKeyCode) {
setKeyPressed(false)
}
}
useEffect(() => {
document.addEventListener('keydown', keyDownHandler)
document.addEventListener('keyup', keyUpHandler)
return () => {
document.removeEventListener('keydown', keyDownHandler)
document.removeEventListener('keyup', keyUpHandler)
}
}, [])
return keyPressed
}
export default useKeyPress