Javascript React应用程序不处理键盘事件
我试图监听键盘事件,onKeyPress或onKeyDown,两个处理程序都不会启动。我知道。我的键盘工作正常。同样的处理程序也适用于onClick e、 g.(对我的组件使用ES6类语法)Javascript React应用程序不处理键盘事件,javascript,reactjs,keyboard-events,redux,Javascript,Reactjs,Keyboard Events,Redux,我试图监听键盘事件,onKeyPress或onKeyDown,两个处理程序都不会启动。我知道。我的键盘工作正常。同样的处理程序也适用于onClick e、 g.(对我的组件使用ES6类语法) render(){ 返回( ... ); } 只有“单击”日志才能访问控制台。不确定错误如何来自此组件文件之外,但必要时将包含更多代码。如果使用类,请将这些函数从类中取出,然后在诸如onKeyPress等事件中调用它们 doSomething(){} 如果您正在使用类,请将这些函数从类中取出,然后在onK
render(){
返回(
...
);
}
只有“单击”日志才能访问控制台。不确定错误如何来自此组件文件之外,但必要时将包含更多代码。如果使用类,请将这些函数从类中取出,然后在诸如onKeyPress等事件中调用它们 doSomething(){}
如果您正在使用类,请将这些函数从类中取出,然后在onKeyPress等事件中调用它们 doSomething(){}
只有具有“焦点”的元素才会接收关键事件。很可能您的
div
元素没有焦点。接下来,我尝试通过添加自动聚焦(jsx中的自动聚焦,但我也尝试了autofocus
html5版本)来为div提供焦点。我也试着点击它来关注它,但仍然没有运气。不过,谢谢你的建议,希望我更接近。这可能会有所帮助:如果我按一下tab键,使用tabindex解决方案会有效,但不会立即(将其设置为0)。嗯。我想我只使用window.addEventListener。只有具有“焦点”的元素的可能副本才会接收关键事件。很可能您的div
元素没有焦点。接下来,我尝试通过添加自动聚焦(jsx中的自动聚焦,但我也尝试了autofocus
html5版本)来为div提供焦点。我也试着点击它来关注它,但仍然没有运气。不过,谢谢你的建议,希望我更接近。这可能会有所帮助:如果我按一下tab键,使用tabindex解决方案会有效,但不会立即(将其设置为0)。嗯,我想我就用window.AddEventListener吧,可能是
render() {
return (
<div
onKeyPress={function(e){console.log('keypress');}}
onKeyDown={function(e){console.log('keydown');}}
onClick={function(e){console.log('click');}}
>
...
</div>
);
}