【发布时间】:2020-03-25 08:29:24
【问题描述】:
如何显示路径在 json 假服务器中的图像? json文件中的数据如下:
"packages": [
{
...
"images": [
"https://i.ibb.co/g7FWSYv/a.jpg",
"https://i.ibb.co/hX3xQ5K/b.jpg",
"https://i.ibb.co/68TdBNs/c.jpg"
],
...
},
]
我正在使用 v-for 循环来显示数据
<v-col v-for="(package, index) in packages" :key="index">
<v-img :src="package.images[0]" ></v-img>
</v-col>
这是我的 javascript:
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
export default {
data () {
return {
packages: [],
}
},
created () {
this.initialize()
},
methods: {
initialize () {
axios.get('http://localhost:4000/packages', {})
.then(response => {
this.packages = response.data
})
}
}
}
但是图像没有显示出来。我在控制台中收到错误:
TypeError: Cannot read property '0' of undefined
response.data 是正确的。它显示了具有 3 个元素的图像数组。
谁能帮帮我?
我稍微改变了我的json:
"images": [
{ "src": "https://i.ibb.co/g7FWSYv/a.jpg"},
{ "src": "https://i.ibb.co/hX3xQ5K/b.jpg" },
{ "src": "https://i.ibb.co/68TdBNs/c.jpg"}
],
并将代码更改为:
<v-img :src="package.images[0].src"></v-img>
我仍然在 console.log() 中遇到同样的错误
【问题讨论】:
-
response.data正确吗?c的价值是什么(顺便说一句,你真的应该给它一个更有意义的名字......)?如果您想得到答案,请提供必要的信息。 -
你好皮埃尔,我认为 response.data 是正确的。我已经编辑了我的问题。
-
这可能是由于模板在
initialise()解析之前被渲染。尝试向v-img添加条件,例如<v-img v-if="package && package.images" :src="package.images[0]" ></v-img>。
标签: arrays json vue.js vuetify.js