uni-app image加载错误 404 替换为默认图片

文章介绍了在Vue.js应用中,如何使用双层v-for遍历数据,并在图片加载错误时,通过handleImageError方法切换至默认图片。通过item或index下标来修改数据,确保列表中的图片正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双层v-for

使用item修改

aitem.cat_icon || defaultPic绑定图片src属性为aitem.cat_icon

  1. 如果aitem.cat_icon的值为空字符串或undefined,那么默认图片defaultPic被显示出来
  2. 当图片加载错误时,触发handleImageError方法,将aitem传进去
 <!-- 页面-->
 <view v-for="item in cateListChild" :key="item.cat_id" class="item-right">
   <view class="item-right-title">/{{ item.cat_name }}/</view>
   <view class="item-right-bottom">
    <view class="right-list" v-for="aitem in item.children" :key="aitem.cat_id" @click="gotoGoodsList(aitem)">
      <image :src="aitem.cat_icon || defaultPic" @error="handleImageError(aitem)"></image>
   </view>
  </view>
</view>
  1. 修改该条数据的cat_icon值
    打印aitem如下,修改cat_icon即可
    在这里插入图片描述
//js
 data(){
 defaultPic:'../../static/goods-image/defaultPic.png'
},
methods:{
 // 处理图片显示错误,显示默认图片
handleImageError(aitem) {
   aitem.cat_icon = this.defaultPic;
    },
}

使用index下标修改

  1. 当图片加载错误时,触发handleImageError方法,将两个下标传进去
 <!-- 页面-->
 <view v-for="(item, index) in cateListChild" :key="item.cat_id" class="item-right">
   <view class="item-right-title">/{{ item.cat_name }}/</view>
   <view class="item-right-bottom">
    <view class="right-list" v-for="(aitem, aindex) in item.children" :key="aitem.cat_id" @click="gotoGoodsList(aitem)">
      <image :src="aitem.cat_icon || defaultPic" @error="handleImageError($event, index, aindex)"></image>
   </view>
  </view>
</view>
  1. 使用下标修改该条数据的cat_icon值
//js
 data(){
 defaultPic:'../../static/goods-image/defaultPic.png'
},
methods:{
 // 处理图片显示错误,显示默认图片
handleImageError(e, index, aindex) {
  const changeDefaultImg = this.cateListChild[index].children[aindex];
  changeDefaultImg.cat_icon = this.defaultPic;
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值