axios中的this指向問題

來源:互聯網
上載者:User

標籤:keyword   header   code   介面   res   過程   ica   str   cat   

最近在使用vue過程中,使用axios進行介面請求,確發現取不到值,返回為undefined。

show (item) {   let searchText = item.keyword
  console.log(this)              // 返回vue執行個體 axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}})   .then(function(res) {   console.log(this)          // undefined if (res.data.code == 200) {   this.artistData = res.data.result.artist[0]   this.albumData = res.data.result.album[0] } }) .catch((err) => { console.log(err) })
}

在vue中,this都指向vue,然而在axios中,this卻指向axios,因此需要使用箭頭函數,不進行this的綁定

show (item) {   let searchText = item.keyword  console.log(this)              // 返回vue執行個體   axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}})     .then((res) => {        console.log(this)          // 返回vue執行個體         if (res.data.code == 200) {           this.artistData = res.data.result.artist[0]           this.albumData  = res.data.result.album[0]         }       })       .catch((err) => {           console.log(err)       })}
或者將this的值賦給內部變數
show (item) {   let searchText = item.keyword  console.log(this)              // 返回vue執行個體
  let that = this; axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}})   .then((res) => {   console.log(that)          // 返回vue執行個體 if (res.data.code == 200) {   this.artistData = res.data.result.artist[0]   this.albumData = res.data.result.album[0] } }) .catch((err) => { console.log(err) })}
 

 

axios中的this指向問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.