Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React应用程序不处理键盘事件_Javascript_Reactjs_Keyboard Events_Redux - Fatal编程技术网

Javascript React应用程序不处理键盘事件

Javascript React应用程序不处理键盘事件,javascript,reactjs,keyboard-events,redux,Javascript,Reactjs,Keyboard Events,Redux,我试图监听键盘事件,onKeyPress或onKeyDown,两个处理程序都不会启动。我知道。我的键盘工作正常。同样的处理程序也适用于onClick e、 g.(对我的组件使用ES6类语法) render(){ 返回( ... ); } 只有“单击”日志才能访问控制台。不确定错误如何来自此组件文件之外,但必要时将包含更多代码。如果使用类,请将这些函数从类中取出,然后在诸如onKeyPress等事件中调用它们 doSomething(){} 如果您正在使用类,请将这些函数从类中取出,然后在onK

我试图监听键盘事件,onKeyPress或onKeyDown,两个处理程序都不会启动。我知道。我的键盘工作正常。同样的处理程序也适用于onClick

e、 g.(对我的组件使用ES6类语法)

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>
  );
}