在 react 中添加enter键出搜索

在React 中enter 键的大致思路就是在document.body上添加“keyup/keydown”事件,然后在keycode=13即按下enter键时触发此事件。

接下来将呈现在React 的 构造函数组 件以及 函数组件 中如何添加 enter 键搜索

函数组件

class Index extends React.componnet{
	 componentDidMount(){
     	document.body.addEventListener('keydown',this.handleKeyDown);
 	 }
  	 componentWillUnmount(){
       document.body.removeEventListener('keydown',this.handleKeyDown)
       this.setState = ()=> false//销毁异步方法放置报错
     }
     handleKeyDown(e){
    	if(window.event){
        	e = window.event
   	    }
       let code = e.charCode || e.keyCode
       if(code === 13){
          e.stopPropagation()//阻止冒泡或捕获促使enter键下拉框展开
          this.handleSubmit(e)
       }
     }
     handleSubmit(e){
	   //书写自己的代码
     }

     render(){
	   <Form//如使用form表单在此添加方法
		   onSubmit={this.handleSubmit.bind(this)}
	   >

	   </Form>
     }
}
 

函数组件

function Index(){
	useEffect(()=>{
		document.body.addEventListener('keydown',(e)=>{
			if(window,event){
				e = window.event;
			}
			let code = e.charCode || e.keyCode
			if(code === 13){
				e.stopPropagation()
				this.handleSubmit(e)	
			}
		})
	
		return()=>{//销毁组件内添加的方法
			document.body.removeEventListener('keydown',()=>{})
		}		
	},[handleSubmit])
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值