微信小程序 this和that詳解及簡單實(shí)例
微信小程序中,在wx.request({});方法調(diào)用成功或者失敗之后,有時候會需要獲取頁面初始化數(shù)據(jù)data的情況,這個時候,如果使用,this.data來獲取,會出現(xiàn)獲取不到的情況,調(diào)試頁面也會報(bào)undefiend。原因是,在javascript中,this代表著當(dāng)前對象,會隨著程序的執(zhí)行過程中的上下文改變,在wx.request({});方法的回調(diào)函數(shù)中,對象已經(jīng)發(fā)生改變,所以已經(jīng)不是wx.request({});方法對象了,data屬性也不存在了。官方的解決辦法是,復(fù)制一份當(dāng)前的對象,如下:
var that=this;//把this對象復(fù)制到臨時變量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); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
微信小程序 中wx.chooseAddress(OBJECT)實(shí)例詳解
這篇文章主要介紹了微信小程序 中wx.chooseAddress(OBJECT)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03微信小程序?qū)崿F(xiàn)頁面跳轉(zhuǎn)傳值的方法
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁面跳轉(zhuǎn)傳值的方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10JavaScript數(shù)組 幾個常用方法總結(jié)
這篇文章主要介紹了JavaScript數(shù)組 幾個常用方法,主要概述的方法有filter()、map()、sort()、reduce()、forEach(),這些方法都是JavaScript常用到的方法,下面文章內(nèi)容詳細(xì)介紹了他們的語法、參數(shù)、返回值等資料,需要的朋友可以參考一下2021-11-11微信小程序 監(jiān)聽手勢滑動切換頁面實(shí)例詳解
這篇文章主要介紹了微信小程序 監(jiān)聽手勢滑動切換頁面實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06JS實(shí)現(xiàn)layui?table篩選框記憶功能
這篇文章主要介紹了JS實(shí)現(xiàn)layui?table篩選框記憶功能,本案例放入本地緩存的方式,使用MutationObserver實(shí)現(xiàn)監(jiān)控點(diǎn)擊事件,需要的朋友可以參考下2022-01-01

微信小程序 動態(tài)的設(shè)置圖片的高度和寬度詳解及實(shí)例代碼