javascript - vue 初始化數(shù)據(jù)賦值報錯
問題描述
vue代碼<script>import axios from ’axios’;export default { data() {return { titleList: [],} }, created() {this.axios.get(’XX’).then(function(response) { console.log(response.data); this.titleList=response.data;}).catch(function (error) { console.log(error);}); }}</script>報錯
TypeError: Cannot set property ’titleList’ of undefined類型錯誤,不能設置未定義的屬性,
數(shù)據(jù)response.data是一個對象數(shù)組我已經(jīng)初始化了titleList,不知為何說他未定義,求大神解答
問題解答
回答1:this 指向更改了 你可以打印出this來看一下指向誰
解決方案
1.用箭頭函數(shù)吧 2.保存this (let _this = this)
回答2:.then(res => { this.titleList = res;})回答3:
this.axios.get(’XX’) .then(function (response) { response=response.body; this.titleList=response.data; }) .catch(function (error) { console.log(error);})
這樣試下。如果不行,把錯誤貼出看下!
回答4:this指針丟失,可以使用箭頭函數(shù),也可以用一個變量保存this let _this = this
回答5:我在使用axios請求數(shù)據(jù)的時候記得是在程序入口文件main.js里面全局引入axios類庫,試試引入后用Vue.prototype.$http=axios,之后就可以在全局使用了,至于樓上給出的答案指出的this指針問題,可以試試,我習慣了es6的語法,所以項目中用的一般都是箭頭函數(shù)
回答6:axios.get(’***’).then((res) => { this.titleList=res.data;});
使用這種方式試試
相關文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. css - 關于border-image4. javascript - 怎么看網(wǎng)站用了什么技術框架?5. 關于Android權限的獲取問題,大家遇到過這樣的情況嘛?6. javascript - 編程,算法的問題7. javascript - 請教空白文本節(jié)點的問題8. PC 手機兼容的 編輯器9. javascript - 前端開發(fā) 本地靜態(tài)文件頻繁修改,預覽時的緩存怎么解決?10. 刷新頁面出現(xiàn)彈框
