1
我需要捕獲cmd按鈕的上下事件,以便選擇,是否在setState中使用串聯或不使用。我如何獲取這些事件,例如,在表格元素上?React onKeyDown/onKeyUp事件對非輸入元素
我需要捕獲cmd按鈕的上下事件,以便選擇,是否在setState中使用串聯或不使用。我如何獲取這些事件,例如,在表格元素上?React onKeyDown/onKeyUp事件對非輸入元素
您必須在body/window級別捕獲按鍵。表格元素沒有輸入焦點,所以你不能捕獲表格中的鍵(沒有輸入元素)。
var cmdDown = false;
document.body.addEventListener('keydown', function(event) {
var key = event.keyCode || event.charCode || 0;
if ([91,93,224,17].indexOf(key) !== -1) {
cmdDown = true;
}
console.log('CMD DOWN: ' + cmdDown.toString());
});
document.body.addEventListener('keyup', function(event) {
var key = event.keyCode || event.charCode || 0;
if ([91,93,224,17].indexOf(key) !== -1) {
cmdDown = false;
}
console.log('CMD DOWN: ' + cmdDown.toString());
});
這是做到這一點的唯一途徑? 我必須在componentDidMount中添加偵聽器到身體? –
是的,或者你可以使用'window.addEventListener'或'onkeydown'事件。 – Hardy
這是解決我的問題的反應方式嗎? –