溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序中this和that怎么用

發(fā)布時間:2021-07-02 14:49:20 來源:億速云 閱讀:182 作者:小新 欄目:web開發(fā)

小編給大家分享一下微信小程序中this和that怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

微信小程序中,在wx.request({});方法調(diào)用成功或者失敗之后,有時候會需要獲取頁面初始化數(shù)據(jù)data的情況,這個時候,如果使用,this.data來獲取,會出現(xiàn)獲取不到的情況,調(diào)試頁面也會報undefiend。原因是,在javascript中,this代表著當前對象,會隨著程序的執(zhí)行過程中的上下文改變,在wx.request({});方法的回調(diào)函數(shù)中,對象已經(jīng)發(fā)生改變,所以已經(jīng)不是wx.request({});方法對象了,data屬性也不存在了。官方的解決辦法是,復制一份當前的對象,如下:

var that=this;//把this對象復制到臨時變量that

在success回調(diào)函數(shù)中使用that.data就能獲取到數(shù)據(jù)了。

不過,還有另外一種方式,也很特別,是將success回調(diào)函數(shù)換一種聲明方式,如下:

success: res =>{
  this.setData({
      loadingHidden: true,
      hideCommitSuccessToast: false
  })
}

在這種方式下,this可以直接使用,完全可以獲取到data數(shù)據(jù)。

再給一個完整的例子:

  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;

     // 定時,3秒消失
     setTimeout(() => {
      this.setData({
       hideCommitSuccessToast: true
      })
      wx.navigateBack({ delta: 2 });
     }, 2000);

    }
   }

以上是“微信小程序中this和that怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI