【发布时间】:2021-07-30 00:15:39
【问题描述】:
我在我的 localhost REST 端点有一个产品 JSON 数组,我想在我的 Vue 应用程序中显示它导致 axios。我在“数据”中定义了一个空数组以使其具有反应性,但我不断收到“产品”未在实例上定义“错误, 截屏: 我的 Products.vue 文件:
<template>
<div>
<h1>Products</h1>
<div class="card" v-bind:key="p.id" v-for="p in products">
<div class="container">
<h3>{{ p.name }}</h3>
<p>Cost: {{ p.price }}</p>
</div>
</div>
</div>
</template>
<script>
import axios from "axios";
export default {
data() {
return {
products: [],
};
},
mounted() {
axios
.get("http://localhost:8080/products/all")
.then((response) => {
this.products = response.data.results;
})
.catch((error) => {
console.log(error);
});
},
};
</script>
我的 App.vue 文件:
<template>
<div id="app">
<h1>{{ msg }}</h1>
<Products v-bind:products="products"/>
</div>
</template>
<script>
import Products from './components/Products.vue';
export default {
name: 'App',
components: {
Products
},
data(){
return{
msg: 'Check 123'
}
},
}
</script>
我的 main.js 文件:
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
Vue.component('products', require('./components/Products.vue'));
new Vue({
render: h => h(App),
data: {
products: []
}
}).$mount('#app')
【问题讨论】:
-
假设您使用的是 Vue CLI 和单文件组件(看起来像),除了答案中对 App.vue 建议的更改之外,您还可以删除
Vue.component(...)和 @987654327 @ 来自 main.js。 -
我已经按照您的建议和答案进行了更改,并且不再出现错误。但是当我检查时,我的产品仍然“未定义”。
-
已解决,谢谢!