如何在 vuejs/vuetify 中显示路径在 json fake server 中的图像?

Posted

技术标签:

【中文标题】如何在 vuejs/vuetify 中显示路径在 json fake server 中的图像?【英文标题】:How to display an image in vuejs/vuetify whose path is in json fake server? 【发布时间】: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 添加条件,例如&lt;v-img v-if="package &amp;&amp; package.images" :src="package.images[0]" &gt;&lt;/v-img&gt; 【参考方案1】:

这取决于response.data 的数据结构,如果它是包含images 字段作为图像链接数组的对象数组,那么您的代码应该可以工作。 如果response.data 是包含images 数组的单个对象(我假设),那么TypeError: Cannot read property '0' of undefined 将上升,在这种情况下,您不需要循环来显示您的 0 索引图像,只需

<v-img v-if="packages.images" :src="packages.images[0]" ></v-img>

【讨论】:

以上是关于如何在 vuejs/vuetify 中显示路径在 json fake server 中的图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建动态表单vuejs vuetify?

jest + vuejs + vuetify 的意外标识符

VueJs - Vuetify - v-navigation-drawer 与智能手机的迷你变体

两个 shallowmount 抛出错误 Jest VueJs(Vuetify)

javascript Vuejs Vuetify Vuex形式的例子

vuejs / vuetify:手动关闭对话框的生成列表