Javascript 创建onKeyPress时出错;输入“;反应

Javascript 创建onKeyPress时出错;输入“;反应,javascript,reactjs,addeventlistener,Javascript,Reactjs,Addeventlistener,我是ReactJS的新手,我对ReactJS的研究还没有深入,我正在尝试设置一个返回查询的搜索框,但现在我遇到了一个未捕获的TypeError:无法读取上未定义的属性“keyCode” if(keyCode==='13') 我想做的是,每次我在文本框中点击“回车”,我都会得到console.log 这是我一直想做的 var searchQuery = (e) => { var textInput = document.getElementById('searchQuery');

我是ReactJS的新手,我对ReactJS的研究还没有深入,我正在尝试设置一个返回查询的搜索框,但现在我遇到了一个未捕获的TypeError:无法读取上未定义的属性“keyCode”

if(keyCode==='13')
我想做的是,每次我在文本框中点击“回车”,我都会得到console.log

这是我一直想做的

var searchQuery = (e) => {
    var textInput = document.getElementById('searchQuery');
        if(e.keyCode === '13'){
            console.log('Enter pressed');
        };  
    };

const SearchBar = () => {
    debugger;

  return (
    <div className="search-bar">
        <input type="text" id="searchQuery" placeholder="Enter Query" onKeyPress={searchQuery(event)}/>
    </div>
    );

};
var searchQuery=(e)=>{
var textInput=document.getElementById('searchQuery');
如果(e.keyCode=='13'){
console.log('Enter pressed');
};  
};
常量搜索栏=()=>{
调试器;
返回(
);
};

任何形式的帮助都将不胜感激。

我不知道反应如何,但应该是

onKeyPress={searchQuery}
键入“函数名”,不带参数

您需要使用

var keyCode = e.which || e.keyCode;
        if(keyCode === 13){
            console.log('Enter pressed');
        };  
    };

下面是您的代码的运行代码片段。
var searchQuery=(e)=>{
var textInput=document.getElementById('searchQuery');
var-keyCode=e.which | | e.keyCode;
如果(键代码===13){
console.log('Enter pressed');
};  
};
常量搜索栏=()=>{
调试器;
返回(
);
};
ReactDOM.render(
,
document.getElementById('root'))
);


谢谢,这是正确的,但是当我使用debugger时,当它转到我的if语句时,它没有检测到“Enter”的键码,想解释一下吗?谢谢,原因是onKeyPress将对任何按下的键执行。谢谢,你能解释一下我的工作为什么不起作用吗?你的为什么这么做?这将非常有用。按键返回字符值,在这种情况下,键代码将为0。
属性返回触发onkeypress事件的键的Unicode字符代码。您可以在w3文档和mozilla文档中阅读更多关于
的内容
onKeyPress={searchQuery}