【发布时间】:2021-09-17 17:46:47
【问题描述】:
所以我在 vue js 中进行多张图片的上传、预览和删除。这是我所拥有的:
<input id="file-upload" type="file" multiple @change="uploadImage" />
<div v-for="(image, key) in productImages" :key="key">
<div class="image-holder">
<img v-bind:ref="'image'" alt="" src="" />
<button type="button" @click="removeImage(image, key)"></button>
</div>
</div
uploadImage(e) {
let selectedFiles = e.target.files;
for (let i = 0; i < selectedFiles.length; i++) {
this.productImages.push(selectedFiles[i]);
}
for (let i = 0; i < this.productImages.length; i++) {
let reader = new FileReader();
reader.onload = (e) => {
this.$refs.image[i].src = reader.result;
};
reader.readAsDataURL(this.productImages[i]);
}
},
removeImage(image, index) {
this.productImages.splice(this.productImages.indexOf(image),1);
this.$refs.image[index].src = ""
}
但问题在于:例如,我上传了三张图片,然后单击以删除第二张图片(在中间),但它删除了中间的图片(我点击了)和最后一张图片(我没有'不要点击删除)。因此,基本上只需单击一下即可删除两个图像。
有什么建议可以解决这个问题吗?
【问题讨论】:
-
也许可以尝试用
findIndex替换indexOfref:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript html vue.js