Aus*_*son 3 addeventlistener reactjs react-native react-native-web react-hooks
如果我需要知道当前是否按下了诸如 Shift 键之类的键,我如何找到该信息?该解决方案应该将此信息分配给一个可以像这样调用的变量:
if(shiftHeld){
//Do the thing.
}
Run Code Online (Sandbox Code Playgroud)
Aus*_*son 11
该解决方案将使用带有钩子和事件侦听器的 React Native。您可以使用事件侦听器来检测按下(或未按下)按键的任何时间,然后筛选要用作条件的按键的结果。这是解决方案:
const [shiftHeld, setShiftHeld] = useState(false);
function downHandler({key}) {
if (key === 'Shift') {
setShiftHeld(true);
}
}
function upHandler({key}) {
if (key === 'Shift') {
setShiftHeld(false);
}
}
useEffect(() => {
window.addEventListener('keydown', downHandler);
window.addEventListener('keyup', upHandler);
return () => {
window.removeEventListener('keydown', downHandler);
window.removeEventListener('keyup', upHandler);
};
}, []);
Run Code Online (Sandbox Code Playgroud)
这将根据是否按住 Shift 键将状态更改为 true 或 false。然后您可以将该值插入到您需要的任何地方。提示:您可以使用此格式来侦听任何其他键。我很难找到有关这些键的名称的文档。如果您无法找到键名称,请实现此代码,然后key在.ifdownHandler
另外,请确保将侦听器留在 a 中useEffect,否则会发生数据泄漏。
| 归档时间: |
|
| 查看次数: |
3787 次 |
| 最近记录: |