-2

我有一个非常大的类,有很多处理程序,并且文档开始难以辨认,我想在我的类之外定义处理程序方法并按类型分组在文档上(所有工具都有不同的处理程序,所以我抓住了事件并根据 selectedTool 将其重定向到正确的处理程序),然后导入这些方法/函数并从另一个方法调用它们,就像它们是普通方法一样。

在此处输入图像描述

第一个日志正确返回,但由于某种原因,handleSelectorMouseDown 内部的日志返回“未定义”,即使我使用 .bind(this)

4

2 回答 2

1

尝试这个:

handleSelectorMouseDown.bind(this)(e)

这将首先将导入的函数绑定到正确的范围,然后执行该函数。

另一种选择是在类构造函数中绑定函数并在以后使用它:

class MyComponent {
    constrctor() {
      this.handleSelectorMouseDown = handleSelectorMouseDown.bind(this);
    }
}

现在你只需要打电话this.handleSelectorMouseDown(e)

于 2021-06-02T20:58:13.193 回答
1

你用bind错了,你必须首先bindcall我会在类级别为你的绑定处理程序创建一个引用:

constructor() {
  this.onSelectorMouseDown = handleSelectorMouseDown.bind(this);
}

然后你可以随意调用它们:

this.onSelectorMouseDown(e);
于 2021-06-02T20:59:22.147 回答