开发者问题收集

Vue.js 错误:TypeError:无法读取未定义的属性

2022-01-09
19828

我对 vue.js 的了解有限,但据我所知这应该可行,但由于某种原因,当我尝试访问数据属性中的变量时,它找不到它。

在此处输入图像描述

data: function() {
    return {
        id: 0,
        clients: []
    }
},
methods: {
    getClientData(){
        fetch('/view-clients/' + this.id).then(function (response) {
            return response.text();
        }).then(function (data) {
            this.clients = JSON.parse(data);
            this.id = this.clients[clients.length - 1].id;
        }).catch(function (error) {
            console.log('Error: ' + error);
        });
    }
}
1个回答

函数作用域很可能是罪魁祸首。改用箭头函数,这样 this 就指向 Vue 组件。

data() {
    return {
        id: 0,
        clients: []
    }
},
methods: {
    getClientData(){
        fetch('/view-clients/' + this.id).then((response) => response.text())
          .then((data) => {
            this.clients = JSON.parse(data);
            this.id = this.clients[this.clients.length - 1].id;
          }).catch((error) => {
            console.log('Error: ' + error);
          });
    }
}
J. Titus
2022-01-09