【发布时间】:2026-02-08 06:35:01
【问题描述】:
我正在使用react-hotkeys 库提供的GlobalHotKeys 在输入指定的键盘快捷键时触发某些事件。但是处理函数无法获取状态的更新值。以下是我使用的代码。
代码沙盒代码可在此处获得:this link
import React from 'react'
import { GlobalHotKeys } from 'react-hotkeys'
function Playground() {
const [count, setCount] = React.useState(0)
const handleEvent = React.useCallback(() => {
console.log("Count Value now is: ", count)
}, [])
return (
<GlobalHotKeys
keyMap={{
FOCUS_BARCODE: 'alt+a'
}}
handlers={{
FOCUS_BARCODE: handleEvent
}}>
<div>
<h1>Here is count value: {count}</h1>
<button onClick={() => setCount((count) => count + 1)}> Increase Count</button>
</div>
</GlobalHotKeys>
)
}
export default Playground
现在发生了什么
任何时候我点击alt+a,它的控制台日志都算作0。我点击了Increase count 按钮并增加了count 的值,然后点击alt+a 仍然将count 的值设为0。
我需要什么
我想用热键打印count 的更新值。
【问题讨论】:
标签: javascript reactjs react-hooks hotkeys