小程序中Cannot read property 'setData' of undefined問題的解決


最近在做一個支付寶小程序,支付寶小程序現在還處在一個內測的狀態,還沒有公測,官方文檔API沒有微信給的那么全,所以我也算第一批接觸支付寶小程序的開發者了,很榮幸,今天講下我對var that = this這行代碼的理解,這行代碼就能解決上述的問題,還可以用ES6的箭頭函數,這兩種辦法都是可以解決上述問題的報錯。

為什么會出來這個問題呢?在小程序中你要向后台發起Http請求,把請求的數據放在page中的data里面,那你首先得拿到page中的data,我們所想的是在函數里面直接用this.setData就能搞定

這是我自己的一個項目,需要在后台請求個數據,然后報錯啦

為什么呢? 因為現在這個this指向的是complete這個函數,我們要的是他指到Page里面的data,

我們只用在OntitleClick事件里面加上var that = this;就行了

因為在調用 OntitleClick() 之前就已經把 this 復制了一份保存在 that 變量中,你復制的這個this是指向的page中data,那你相當於用這行代碼搭了個橋,讓that.setData指向了Page中的data

2.用箭頭函數一樣好使

這樣和上面是一樣的,我在慕課上面看到有人說箭頭函數不能操作Page中的data,????excuseme?反正本人親自測驗沒毛病

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM