Javascript 当按下空格键而不是按钮上的空格键时,使用按键向下对触发按钮进行反应

Javascript 当按下空格键而不是按钮上的空格键时,使用按键向下对触发按钮进行反应,javascript,python,html,css,reactjs,Javascript,Python,Html,Css,Reactjs,现在,我正在尝试创建一个激活OnKeyDown的按钮,但该命令仅在用户将鼠标悬停在按钮上并选中该按钮时有效。有没有一种方法可以使用OnKeyDown,这样您就可以将鼠标悬停在屏幕另一侧的img上,按空格键并激活按钮。 差不多 render(){ return( <div> <button onKeyDown = {this.dostuff}/> <img src = {thing}/> </div> ); } render(){ 返回( )

现在,我正在尝试创建一个激活OnKeyDown的按钮,但该命令仅在用户将鼠标悬停在按钮上并选中该按钮时有效。有没有一种方法可以使用OnKeyDown,这样您就可以将鼠标悬停在屏幕另一侧的img上,按空格键并激活按钮。 差不多

render(){
return(
<div>

<button onKeyDown = {this.dostuff}/>
<img src = {thing}/>
</div>

);

}
render(){
返回(
);
}

除非将鼠标悬停在图像上方并按空格键,否则按钮将被激活。

您可以通过使用
useffect()
钩子来实现这一点,类似于
componentDidMount()
,这样您就可以在
useffect()中向代码添加全局窗口事件侦听器
一旦部件安装到屏幕上,该功能将立即启动


中编写示例代码好的,谢谢!这可以在类组件内部实现吗?
useffect()
是为有状态功能组件创建的,它更像是对类组件的增强,因为它被认为是功能的语法糖衣,而且在未来的开发过程中,应用程序逻辑将分布在
componentDidMount()
componentdiddupdate()
componentWillUnmount()
。无论如何,实际上可以在类组件内执行此操作,正如我前面使用
componentDidMount()
函数所述。我强烈建议你使用状态挂钩。非常感谢!如果你愿意回答,我有一个无关的问题。您知道如何将react flask应用程序部署到AWS ec2上吗?您应该避免使用全局事件侦听器,因为它们可能会与其他组件中的预期行为发生冲突。使用空格键尤其危险,因为它会覆盖按钮和复选框之类的本机功能。我建议将所有侦听器的范围限定为组件中的元素,或使用。