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

對於處於小白階段的我,遇到這種報錯,真還不知道是錯從何來,只有一臉蒙逼,后來通過查詢,終於知道了問題所在,下面對這一問題做一記錄
小程序默認中是這么寫的
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)
},
這樣就不報錯了
