Javascript – Vue-Initialisierungsdatenzuweisungsfehler
漂亮男人
漂亮男人 2017-06-26 10:55:47
0
6
774

vue-Code

<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>

Einen Fehler melden

TypeError: Cannot set property 'titleList' of undefined
Typfehler, undefinierte Eigenschaft kann nicht festgelegt werden,

Daten

response.data ist ein Objektarray
Ich habe titleList initialisiert, aber aus irgendeinem Grund heißt es, es sei undefiniert, bitte geben Sie mir eine Antwort

漂亮男人
漂亮男人

Antworte allen(6)
伊谢尔伦

this 指向更改了 你可以打印出this来看一下指向谁


解决方案

1.用箭头函数吧
2.保存this (let _this = this)

巴扎黑
.then(res => {
    this.titleList = res;
})
过去多啦不再A梦
this.axios.get('XX')
    .then(function (response) {
      response=response.body;
      this.titleList=response.data;
    })
    .catch(function (error) {
      console.log(error);
})

这样试下。如果不行,把错误贴出看下!

扔个三星炸死你

this指针丢失,可以使用箭头函数,也可以用一个变量保存this let _this = this

習慣沉默

我在使用axios请求数据的时候记得是在程序入口文件main.js里面全局引入axios类库,试试引入后用Vue.prototype.$http=axios,之后就可以在全局使用了,至于楼上给出的答案指出的this指针问题,可以试试,我习惯了es6的语法,所以项目中用的一般都是箭头函数

阿神
axios.get('***').then((res) => {
    this.titleList=res.data;
});

使用这种方式试试

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage