Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我使用.bind(这个),但它在导入的函数中一直未定义?Javascript反应_Javascript_Reactjs_React Class Based Component - Fatal编程技术网

我使用.bind(这个),但它在导入的函数中一直未定义?Javascript反应

我使用.bind(这个),但它在导入的函数中一直未定义?Javascript反应,javascript,reactjs,react-class-based-component,Javascript,Reactjs,React Class Based Component,我有一个非常大的类,有很多处理程序,文档开始难以辨认,我想在我的类之外定义处理程序方法,并按类型在文档上分组(所有工具都有不同的处理程序,因此我捕获事件,并根据所选的工具将其重定向到正确的处理程序),然后导入这些方法/函数并从另一个方法调用它们,就像它们是普通方法一样 第一个日志正确地返回该值,但由于某些原因,即使我使用了handleSelectorMouseDown,来自内部的日志也会返回“undefined”。bind(this)尝试以下操作: handleSelectorMouseDow

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

第一个日志正确地返回该值,但由于某些原因,即使我使用了handleSelectorMouseDown,来自内部的日志也会返回“undefined”。bind(this)

尝试以下操作:

handleSelectorMouseDown.bind(此)(e)

这将首先将导入的函数绑定到正确的作用域,然后执行该函数

另一个选项是在类构造函数中绑定函数并在以后使用:

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

现在您只需要调用
this.handleSelectorMouseDown(e)
如果您使用的
bind
错误,您必须首先
bind
然后
call
,我将在类级别为绑定的处理程序创建一个引用:

constructor() {
  this.onSelectorMouseDown = handleSelectorMouseDown.bind(this);
}
然后你可以随意称呼他们:

this.onSelectorMouseDown(e);

请不要显示代码的图片。在你的问题中包括实际的代码。你使用bind是错误的,你必须先
bind
然后
call
,在你的情况下,场景是
handleSelectorMouseDown.bind(这个)(e)
,虽然我不喜欢那种方法,但我会创建一个绑定的引用,比如
const onSelectorMouseDown=handleSelectorMouseDown.bind(这)
相反,然后在SelectorMousedown(e)上调用
是否有任何方法可以使用箭头函数执行此操作?