我想在React中的div上使用keyDown事件。我愿意:
componentWillMount() {
document.addEventListener("keydown", this.onKeyPressed.bind(this));
}
componentWillUnmount() {
document.removeEventListener("keydown", this.onKeyPressed.bind(this));
}
onKeyPressed(e) {
console.log(e.keyCode);
}
render() {
let player = this.props.boards.dungeons[this.props.boards.currentBoard].player;
return (
<div
className="player"
style={{ position: "absolute" }}
onKeyDown={this.onKeyPressed} // not working
>
<div className="light-circle">
<div className="image-wrapper">
<img src={IMG_URL+player.img} />
</div>
</div>
</div>
)
}
它工作的很好,但我想做更多的反应风格。我试过了
onKeyDown={this.onKeyPressed}
在组件上。但它没有反应。我记得它对输入元素有效。
代码笔
我怎么做?
您在纯Javascript中考虑的太多了。摆脱那些React生命周期方法的侦听器,使用事件。键
而不是事件。keyCode
(因为这不是JS事件对象,所以它是一个事件)。您的整个组件可以像这样简单(假设您没有在构造函数中绑定方法)。
onKeyPressed(e) {
console.log(e.key);
}
render() {
let player = this.props.boards.dungeons[this.props.boards.currentBoard].player;
return (
<div
className="player"
style={{ position: "absolute" }}
onKeyDown={this.onKeyPressed}
>
<div className="light-circle">
<div className="image-wrapper">
<img src={IMG_URL+player.img} />
</div>
</div>
</div>
)
}
你需要这样写
<div
className="player"
style={{ position: "absolute" }}
onKeyDown={this.onKeyPressed}
tabIndex="0"
>
如果按下on键
未绑定到此
,则尝试使用箭头函数重写它或在组件构造函数中绑定它。
您应该使用tabIndex属性来监听React中div上的onKeyDown
事件。设置tabIndex="0"
应该触发处理程序。
问题内容: 我想在React中的div上使用keyDown事件。我做: 它工作正常,但我想以React风格做更多。我试过了 在组件上。但是它没有反应。我记得它可以处理输入元素。 码笔 我该怎么做? 问题答案: 您应该使用 tabIndex 属性,以便能够在React中的div上监听onKeyDown事件。设置tabIndex =“ 0”应该会触发您的处理程序。
我创建了一个反应父组件,它将一些道具传递给它的子组件,并持有一个onclick函数。当单击产品组件时,onclick函数应该console.log'WORKED',这不起作用,控制台上没有显示任何内容。我不明白我错在哪里,这应该是如此简单。我是不是犯了一个我一直忽略的愚蠢错误? 这是我的父组件代码: 以下是产品(子)组件的代码:
问题内容: 我已经尝试通过在MapView.Marker选项卡中调用onPress方法,但是它不起作用。 这种跟踪标记点击的方法: 在render方法中,声明了Map组件以在地图上显示地图和标记。在onPress方法中,我调用了自定义方法markerClicked()。仍然我没有得到结果。 问题答案: 你只需要添加的标签。自定义标注-您可以根据需要自定义标记信息点击窗口。 我已经习惯了,这样您就可
这里是我正在工作的站点:https://cutt.ly/sxosoty问题是,如果你点击图像滑块,它不会检测到点击事件“只在移动设备上”。在桌面上工作。但似乎点击移动设备上的特定div是不起作用的。 null null 它的工作为整个页面,但不是在这个div“滑列表拖动”,我不确定是什么阻止点击甚至。任何帮助都是非常感谢的!
问题内容: 当我将鼠标悬停在DIV上时,它将触发将鼠标悬停在父DIV上,这对我来说似乎是错误的。我只希望“突出显示”效果在子DIV 上起作用。 问题答案: 根据定义,将鼠标悬停在孩子上,也将鼠标悬停在父母上。html事件中没有“阻止”。 有两个方法链,气泡和捕获。 W3C事件模型中发生的任何事件都首先被捕获,直到到达目标元素,然后再次冒泡。 http://www.quirksmode.org/js
我一直在努力解决这个问题,但是即使有这么多解决方案,即使在堆栈上,我也找不到一个符合我需求的。 我想将一个img放在具有“overflow:hidden”的包装div中,这样图像就可以有任何可能的宽度。问题是包装器div与包含文本的同一高度的另一个div对齐。 我尝试过绝对定位的解决方案,但由于宽度和高度都没有设置在特定数量的像素中,这将无法工作,图像将不再显示。 试图使用flexbox也以一团糟
我完全卡住时集成HOC在我的react.js项目。 这是我的路线文件 我对此完全崩溃了,但没有摆脱那个问题。为什么我的控制台中的不显示值 有任何问题与反应和反应路由器的版本 提前谢谢你!!!
我正在用Libgdx做一个简单的平台游戏。。。我让玩家向左移动,向右移动,然后跳跃。该代码在桌面上运行良好,但在Android设备上,当玩家向左或向右移动时,不会触发跳转。看起来很奇怪。这是我的密码。。。 私有空updatePlayerForUserInput(浮点deltaTime){ 我从mzencher在 https://github.com/libgdx/libgdx/blob/maste