我试图创建一个反应组件,这是一个文本输入。当有人按下回车键时,必须调用mymethod()。但是在handleKeyPress,我不能访问类范围。我怎样才能解决这个问题?
class MyContainer extends Component {
constructor(props, context) {
super(props, context);
}
myMethod(){}
handleKeyPress(target) {
var self = this;
if(target.charCode === 13) {
this.myMethod();
}
}
render() {
<input onKeyPress={this.handleKeyPress} ref={(input) => this.inputMax = input} type="text" />
}
}
您需要在构造函数中绑定函数。
constructor(props, context) {
super(props, context);
this.handleKeyPress = this.handleKeyPress.bind(this)
}
您需要绑定处理程序。
class MyContainer extends Component {
constructor(props, context) {
super(props, context);
this.handleKeyPress = this.handleKeyPress.bind(this);
}
myMethod(){}
handleKeyPress(target) {
var self = this;
if(target.charCode === 13) {
this.myMethod();
}
}
render() {
<input onKeyPress={this.handleKeyPress} ref={(input) => this.inputMax = input} type="text" />
}
}
另一种解决方案是使用箭头函数(有性能缺陷)或@autobind
装饰器
玩一些es6,遇到了一个问题,我不知道如何解决 在的内部,?目前我用bind解决了这个问题,但我想知道是否有一种更“合适”的ES6方法来实现这一点。
事件就是用户或浏览器自身执行的某种动作。诸如click、load 和mouseover,都是事件的名字。而响应某个事件的函数就叫做事件处理程序(或事件侦听器)。事件处理程序的名字以"on"开头,因此click 事件的事件处理程序就是onclick,load 事件的事件处理程序就是onload。为事件指定处理程序的方式有好几种。 13.2.1 HTML事件处理程序某个元素支持的每种事件,都可以使用一
我将一些事件转发给Kafka并启动了我的Kafka流程序。我的程序开始处理事件并完成。一段时间后,我停止了我的Kafka流应用程序并重新开始。观察到我的Kafka流程序正在处理已经处理过的先前事件。 根据我的理解,Kafka流在内部维护每个应用程序id的输入主题本身的偏移量。但在这里重新处理已经处理的事件。 如何验证Kafka流处理的偏移量?Kafka流是如何保存这些书签的?根据什么 如果Kafk
我已经在JList上有一个这样的自定义控件库 但是我希望Jlist有滚动条,所以我将自定义控件的超类更改为JScrollPane并将JList添加到其中。像这样的代码 好吧,如果MyClass扩展了JList,在JFrame中我可以将MouseListener添加到MyClass对象中,在mouseClick中我比较MouseEvent getSource是MyClass的一个实例并调用MyCla
我不确定如何处理以下情况。有一个接口定义了事件处理方法“onSomethinAccounting()”。 有一个基类将其实现为虚拟方法,并在其中使用一些异步代码。 有一个派生类要重写虚方法,但也要调用。 问题是,我不能将方法调用标记为等待,因为它返回void。事件处理程序可以使用异步void方法,因此不能将其更改为任务(这也不是我的代码)。 那么,我应该如何确保我的派生类执行? 这个解决方案在派生
事件 事件,就是文档与浏览器发生特定的 交互瞬间。JavaScript与HTML之间的交互就是通过事件实现的。 事件流 所谓事件流,就是接收页面事件的顺序。 事件流分 事件冒泡流 与 事件捕获流。事件冒泡流是IE开发团队提出的,捕获流是Netscape开发团队提出的。 事件冒泡流 所谓事件冒泡,就是事件开始时由 最具体的元素(文档中嵌套最深的那个 节点)接收,然后逐级向上传播到较为不具体的节点(文