欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

一分鐘解決微信小程序在循環(huán)或者setInterval中渲染(this.setData)出錯(cuò)問題 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

一分鐘解決微信小程序在循環(huán)或者setInterval中渲染(this.setData)出錯(cuò)問題

發(fā)表時(shí)間:2020-9-25

發(fā)布人:葵宇科技

瀏覽次數(shù):114

大家好,我又來給大家安利讓大家頭痛的問題解決辦法啦。最近發(fā)現(xiàn)很多新手或者對微信小程序源碼理解不深的小可愛們會遇到在this.setData渲染時(shí)出現(xiàn)錯(cuò)誤的問題,怎么都解決不了,明明代碼都對的?;虿欢嗾f干貨奉上。
當(dāng)你的代碼是:

var name =  "huangzu98";
 for(let i=0;i<this.data.array.length;i++){
		if(if(this.data.array[i].name != name){
			this.setData({
					array[i].name:name
			})
		}
}
  或者是這樣:
 var name = "huangzu98";
var interval = setInterval(function () {
	this.setDate({
			devName:name
	})
	
},600)

如果你出現(xiàn)上面類似代碼編寫時(shí)會出現(xiàn)TypeError: this.setDate is not a function,仔細(xì)發(fā)現(xiàn)代碼都是正確的。
這是因?yàn)閠his作用域指向問題 ,很多函數(shù)實(shí)際是一個(gè)閉包 , 無法直接通過this來setData

那么需要怎么修改呢?

我們通過將當(dāng)前對象賦給一個(gè)新的對象

var that = this;
然后使用that 來setData就行了

var name = “huangzu98”;
var that = this;
var interval = setInterval(function () {
that.setDate({
devName:name
})

},600)

到這里就結(jié)束了,希望幫助你順利脫坑,以上代碼均是我舉例說明,請結(jié)合自己實(shí)際代碼進(jìn)行調(diào)試。
希望能夠幫到大家哦!IT需要愛與和平😊,最后請大家關(guān)注我,以及我的一分鐘系列(Android篇和小程序篇)讓你一分鐘實(shí)現(xiàn)相應(yīng)的功能,成功引起產(chǎn)品經(jīng)理的注意襖。

相關(guān)案例查看更多