簡體   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