首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnKeyPress不会触发

OnKeyPress不会触发
EN

Stack Overflow用户
提问于 2019-10-16 03:54:21
回答 2查看 103关注 0票数 1

我有一个关键字搜索文本框,我想runSearch功能,当用户按下回车键。但是现在这个事件还没有被触发。我的代码如下:

代码语言:javascript
复制
 onkeyPress=(e)=>{
  if(e.key === "Enter" ||e.charCode === 13||e.keyCode === 13){
 console.log('keyword value', this.state.keyword);
 this.runSearch();

 }
}
...
<input  id="search-box" placeholder="Enter a search term..." type="textbox" value={this.state.keyword} onChange={this.onKeywordInputChange} onKeyPress={this.onKeyPress}   /> 

-下面的工作代码- https://reactarmory.com/guides/react-events-cheatsheet

代码语言:javascript
复制
handler=(event)=> {
  console.log("key:", event.key);
    if (event.key==="Enter"){...}
}



<input 
      id="search-box" type="textbox"
      value={this.state.keyword} 
      onChange={this.onKeywordInputChange}
    placeholder='Enter a search term...'

    onKeyPress={this.handler}
   />
EN

回答 2

Stack Overflow用户

发布于 2019-10-16 04:03:09

确保onKeyPress位于类组件构造函数内:

代码语言:javascript
复制
constructor(props) {
  super(props);
  this.onKeyPress = this.onKeyPress.bind(this);
}

或者您可以使用

代码语言:javascript
复制
onKeyPress = (e) => {}

或者使用功能组件并完全省略this

https://codesandbox.io/s/crimson-wood-khmg0

代码语言:javascript
复制
function App() {
  const onKeyPress = e => console.log(e.nativeEvent);
  return (
    <div className="App">
      <input type="text" placeholder="type something" onKeyPress={onKeyPress} />
    </div>
  );
}
票数 1
EN

Stack Overflow用户

发布于 2019-10-16 08:25:17

我已经更新了一份工作代码。我不知道为什么老代码不能工作。

代码语言:javascript
复制
handler=(event)=> {
console.log("key:", event.key);
if (event.key==="Enter"){...}
}



<input 
  id="search-box" type="textbox"
  value={this.state.keyword} 
  onChange={this.onKeywordInputChange}
placeholder='Enter a search term...'

onKeyPress={this.handler}
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58401805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档