私のコンポーネントvue.jsはこのようなものです:解決方法 "未知(未定)TypeError:response.body.forEachは関数ではありません" (vue.js 2)
<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":"Category 1","21":"Category 2","22":"Category 3"}
が、私は選択の値に応答を表示します。実行された場合にでも、コンソールにこのようなエラーが存在します。
Uncaught (in promise) TypeError: response.body.forEach is not a function at VueComponent.
私を助けることができる人はいますか?
オブジェクトは 'forEach'が持っていない - あなたは' item'と 'item.id'があることを期待しますどのような' Object.keys' –
を使うのか? – Bergi