【发布时间】:2021-01-07 15:31:52
【问题描述】:
我正在使用 ReactJs 创建一个网页,但遇到了一个问题。我正在尝试使用 keydown 事件在我的页面中处理输入按键。以下是一段代码:
class ManageUser extends React.Component {
componentDidMount() {
window.addEventListener("keydown", this.keyEventHandler, false);
}
keyEventHandler(event: KeyboardEvent) {
if (event.keyCode === KEY_CODE.ENTER) {
this.handlerUserEntry(); //Getting error here....
}
}
handlerUserEntry() {
console.log('handle user entry here');
}
}
我能够捕获输入键事件。但是当我尝试从keyEventHandler 函数调用this.handlerUserEntry(); 时,我收到以下错误:
TypeError: this.handlerUserEntry 不是函数
我在这里做错了什么?
【问题讨论】:
-
你可能需要绑定handlerUserEntry:freecodecamp.org/news/…
-
您是否尝试将事件传递给您的 handleUserEntry 函数。再加上将其更新为箭头函数,因此它绑定到您的 Class 组件
-
我也试过这个。这不起作用。如果我从其他函数调用 this.handleUserEntry() 它工作正常。问题仅发生在 keydown 事件发生时。
-
不是一个解决方案,但我认为您使用的是旧版本的管理事件和旧的反应。我使用过类似的功能,但代码绝对不是这样的。
标签: reactjs