簡體   English   中英

在地圖中調用函數時未定義錯誤 - 打字稿

[英]Function not defined error while calling it inside map - typescript

我在函數中有以下地圖

mainFunc(){
// other logics

    data.map(function (item) {
      item.number = Math.round(item.number);
      item.total = item.last - item.first;
      item.quantity= item?.quantity ? quantityRange(item?.quantity): '';
    }); 

// other logics
}


quantityRange(quantity){
if(quantity){
   if(quantity < 100) return "Less Quantity";
   if(quantity < 500) return "Average Quantity";
   else return "Good Quantity"
   }
}

我在mainFunc() quantityRange()之外有 quantityRange(),我在地圖內的三元運算符內調用它。 當我運行我的代碼時,我得到錯誤quantityRange()未定義。 我們不能在打字稿的地圖中使用這樣的功能嗎?

任何幫助,將不勝感激。

mainFunc(){
// other logics
    const self = this; // make sure you are not loosing this
    data.map(function (item) {
      item.number = Math.round(item.number);
      item.total = item.last - item.first;
      item.quantity= item?.quantity ? self.quantityRange(item?.quantity): '';
    }); 

// other logics
}

您應該使用 this 關鍵字調用該方法,為此您應該綁定 this。 有不同的方法可以做到這一點,其中之一就是將其保存在變量中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM