suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Vue-Initialisierungsdatenzuweisungsfehler

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

漂亮男人漂亮男人2750 Tage vor808

Antworte allen(6)Ich werde antworten

  • 伊谢尔伦

    伊谢尔伦2017-06-26 10:57:47

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


    解决方案

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

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-26 10:57:47

    .then(res => {
        this.titleList = res;
    })

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-26 10:57:47

    this.axios.get('XX')
        .then(function (response) {
          response=response.body;
          this.titleList=response.data;
        })
        .catch(function (error) {
          console.log(error);
    })
    

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

    Antwort
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-26 10:57:47

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

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-06-26 10:57:47

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

    Antwort
    0
  • 阿神

    阿神2017-06-26 10:57:47

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

    使用这种方式试试

    Antwort
    0
  • StornierenAntwort