开发者问题收集

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

2019-07-17
3946

我试图用从服务器 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
    }
}

查看了之前的问题: 未捕获(在承诺中)TypeError:无法使用 axios 设置未定义的属性

但我看不出我做了什么不同的事情?

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
      })
   }
}
mbojko
2019-07-17

在 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;
}
Malice
2019-07-17