微信小程序報錯TypeError: this.setData is not a function


今天在練習小程序的時候,遇到小程序報錯

對於處於小白階段的我,遇到這種報錯,真還不知道是錯從何來,只有一臉蒙逼,后來通過查詢,終於知道了問題所在,下面對這一問題做一記錄

小程序默認中是這么寫的

onLoad:function(e){
  this.setData({
  name:app.name
  })
}
這個this就沒問題
 
自己寫的
ononon:function(){
  var tt=setInterval(function(){
    jindu++
    if(jindu>=50){
      clearInterval(tt)
    }
    this.setData({
      ppp: jindu
    })
  },30)
},
就報錯了,這是為什么呢,通過查詢各路前輩的說法得出自己的理解:
this.setData只能用於函數里面的第一層,如果用於函數里面的其他方法內,比如此處的setInterval里面,就必須要在函數內第一層申明this,
比如that=this
 
ononon:function(){
  var that=this
  var tt=setInterval(function(){
    jindu++
    if(jindu>=50){
      clearInterval(tt)
    }
    that.setData({
      ppp: jindu
    })
  },30)
},

這樣就不報錯了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM