import React, { 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) } // eslint-disable-next-line react-hooks/exhaustive-deps }, []) // 只在第一次加载触发 return keyPressed}export default useKeyPress