未捕获(按承诺)TypeError:无法在vue.js中的eval设置undefined的属性?

时间:2019-07-17 13:27:31

标签: javascript vue.js axios

我正在尝试使用从服务器API(即json)获得的值设置空对象。 但是我在同一行上不断出现错误:

Uncaught (in promise) TypeError: Cannot set property 'itemListModel' of undefined at eval

我的代码:

data: function() {
return {
itemListModel: {}
}
}

methods: {
   getAllItemsFromDb: async () => {
    const url = 'https://localhost:44339/ListAll';
      await axios.get(url, {
    headers: {
        'Content-Type': 'application/json'
    }}).then((response) => {
         this.itemListModel = response.data
    })
    }
}

computed : {
   itemResultsFromDB: function(){

      return this.itemListModel
    }
}

看了上一个问题:Uncaught (in promise) TypeError: Cannot set property of undefined with axios

但是我看不到自己在做什么?

2 个答案:

答案 0 :(得分:2)

我相信,箭的功能应该受到谴责。将getAllItemsFromDb转换为function函数:

methods: {
   getAllItemsFromDb() {
      const url = 'https://localhost:44339/ListAll';

      axios.get(url, {
         headers: {
            'Content-Type': 'application/json'
         }
      }).then((response) => {
         this.itemListModel = response.data
      })
   }
}

答案 1 :(得分:1)

在getAllItemsFromDb函数中,您正在等待axios.get()的结果。因此,您不需要.then()块。试试这个:

getAllItemsFromDb: async () => {
  const url = 'https://localhost:44339/ListAll';
  const response = await axios.get(url, {
    headers: {
      'Content-Type': 'application/json'
    }
  });

  this.itemListModel = response.data;
}