如何解决“Uncaught (in promise) TypeError: response.body.forEach is not a function”? (vue.js 2)
Posted
技术标签:
【中文标题】如何解决“Uncaught (in promise) TypeError: response.body.forEach is not a function”? (vue.js 2)【英文标题】:How to solve "Uncaught (in promise) TypeError: response.body.forEach is not a function" ? (vue.js 2) 【发布时间】:2017-06-28 05:41:15 【问题描述】:我的组件 vue.js 是这样的:
<script>
export default
name: 'CategoryBsSelect',
template: '\
<select class="form-control" v-model="selected" required>\
<option v-for="option in options" v-bind:value="option.id" v-bind:disabled="option.disabled"> option.name </option>\
</select>',
//props: list: type: String, default: '',
mounted()
this.fetchList();
,
data()
return
selected: '',
options: [id: '', name: 'Select Category']
;
,
methods:
fetchList: function()
this.$http.post(window.BaseUrl+'/member/category/list').then(function (response)
//this.$set('list', response.data);
console.log(JSON.stringify(response.body))
response.body.forEach(function(item)
this.$set(this.options, item.id, item);
, this);
);
,
;
</script>
console.log(JSON.stringify(response.body))
的结果:
"20":"类别 1","21":"类别 2","22":"类别 3"
我想显示对选择值的响应。但是当执行时,在控制台上存在这样的错误:
Uncaught (in promise) TypeError: response.body.forEach is not a 功能 在 VueComponent。
有没有人可以帮助我?
【问题讨论】:
对象没有forEach
- 使用Object.keys
您希望item
和item.id
是什么?
【参考方案1】:
使用
Object.keys(response.body).map(function(key)
this.$set(this.options, key, response.body[key]);
);
【讨论】:
为什么是map
?您的函数没有返回任何内容。
为什么不使用简单的for
循环?以上是关于如何解决“Uncaught (in promise) TypeError: response.body.forEach is not a function”? (vue.js 2)的主要内容,如果未能解决你的问题,请参考以下文章
解决Uncaught (in promise) reason的问题
解决Uncaught (in promise) reason的问题
前端Uncaught (in promise) 的解决方法及原因
解决 Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互
解决vue3 vue-pdf报错Uncaught (in promise) TypeError: h is not a function
解决vue3 vue-pdf报错Uncaught (in promise) TypeError: h is not a function