getImage() {
this.show = false;
this.src = "";
this.form.polarWay2 == 'HH' ? this.form.polarWay = 1 : this.form.polarWay = 2;
this.form.type2 == '全向' ? this.form.type = 1 : this.form.type = 2;
this.$axios.post("xxxxxxx", this.form).then((res) => {
if (res.success) {
if (res.result) {
setTimeout(() => {
let str = "";
str = this.$url + "downloadImage" + res.result.outPath;
this.src = str;
console.log(333, this.src)
this.show = true
}, 2000)
} else {
uni.showToast({
title: '暂无数据',
duration: 3000,
})
this.src = ""
}
} else {
uni.showToast({
title: res.message,
duration: 3000,
})
}
})
},
<view v-if="show" style="margin-top: 20px;">
<u-image :src="src" width="100%" height="auto" mode="widthFix"></u-image>
</view>
第一次接口获取图片的src 正常 之后多次获取图片的结果都是第一次的结果,但是打开获取的url是最新的 但是前台展示的永远都是第一次的
使用 Vue 的 key 属性来强制重新渲染组件。这样可以确保每次 src 更新时,Vue 都会重新渲染组件。
以下是改进后的代码:
通过在 <u-image> 组件上使用 key 属性,确保每次 src 更新时,Vue 都会重新渲染组件。