在开发中,当遇到图片未能正确显示时,载入一张默认图片。这里介绍下方法:对于单张图,下面的是可以实现的:
<image mode="scaleToFill":src="imgurl" @error="handleImageError" />
handleImageError(event) {
event.target.src = '/static/images/default.png';
// 控制不要一直跳动
event.target.onerror = null;
},
但如果,是一个列表,那么以上代码就有些问题。需要调整为:
<view v-for="(data, index) in list" :key="index">
<image mode="scaleToFill":src="data.imgurl" @error="handleImageError($event,index)" />
</view>
handleImageError(event,index) {
this.list[index].imgurl = '/static/images/default.png';
},通过获取到错误,及所在图片索引号,将数据列表中对应图片地址重新修改成默认图片路径即可。