繁体   English   中英

我使用.bind(this) 但在导入的 function 上一直未定义? Javascript 反应

[英]I use .bind(this) but it keeps been undefined on the imported function? Javascript React

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

在此处输入图像描述

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

尝试这个:

handleSelectorMouseDown.bind(this)(e)

这将首先将导入的function绑定到正确的scope,然后执行function。

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

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

现在你只需要调用this.handleSelectorMouseDown(e)

您使用bind错误,您必须先bind然后call ,我会在 class 级别为您的绑定处理程序创建一个引用:

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

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

this.onSelectorMouseDown(e);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM