- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- 微信小程序中this和that怎么用
小編給大家分享一下微信小程序中this和that怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
微信小程序中,在wx.request({});方法調用成功或者失敗之后,有時(shí)候會(huì )需要獲取頁(yè)面初始化數據data的情況,這個(gè)時(shí)候,如果使用,this.data來(lái)獲取,會(huì )出現獲取不到的情況,調試頁(yè)面也會(huì )報undefiend。原因是,在javascript中,this代表著(zhù)當前對象,會(huì )隨著(zhù)程序的執行過(guò)程中的上下文改變,在wx.request({});方法的回調函數中,對象已經(jīng)發(fā)生改變,所以已經(jīng)不是wx.request({});方法對象了,data屬性也不存在了。官方的解決辦法是,復制一份當前的對象,如下:
var that=this;//把this對象復制到臨時(shí)變量that
在success回調函數中使用that.data就能獲取到數據了。
不過(guò),還有另外一種方式,也很特別,是將success回調函數換一種聲明方式,如下:
success: res =>{ this.setData({ loadingHidden: true, hideCommitSuccessToast: false }) }
在這種方式下,this可以直接使用,完全可以獲取到data數據。
再給一個(gè)完整的例子:
success: res => { if (res.data.code != 0) { // 提交失敗 this.setData({ loadingHidden: true, hiddenTips: false, tipsContent: res.data.message }) } else { // 提交成功 this.setData({ loadingHidden: true, hideCommitSuccessToast: false }) subBtn = false; // 定時(shí),3秒消失 setTimeout(() => { this.setData({ hideCommitSuccessToast: true }) wx.navigateBack({ delta: 2 }); }, 2000); } }
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站