react中怎么增加键盘的事件

整个页面,我需要通过键码来做一些事件,那我应该怎么加键盘事件呢??点击事件一般都是直接给到元素身上,但是键盘事件该给谁呢,

我的意思就是我点击方向键,页面的div会随着我的键盘的方向产生位移?请问这个怎么做???图片描述

阅读 14.6k
2 个回答
let move = function(direction){
    switch(direction){
        case 'top':
            return {
                top:div.position.top--
            }
        case 'left':
            return {
                top:div.position.left--
            },
        case 'right':
            return {
                top:div.position.left++
            }
       case 'bottom':
            return {
                top:div.position.top++
            }
    }

}

document.addEventListener('keyup',function(e){
        switch(e.keyCode){
            case 38:
            //上
            move('top')
            break
            case 40
            //下
            move('bottom')
            break
            case 37
            //左
            move('left')
            break
            
            case 39
            move('right')
            break
            
            default:
            break
          
        }
 })
 
 
 
 大概类似与这样的把。div.position是你redux里的要移动物体的位置值。代码写的烂 不要直接复制用哈。
 最好用redux里面的action 写操作。

针对具体组件,当前组件必须处于被激活选中状态才生效

<App tabIndex={1} onKeyDown={this.handleKeyDown}>

第二种:

componentDidMount() {
   window.addEventListener('keydown', this.handleKeyDown)
}
推荐问题