У меня возникли некоторые проблемы с моим проектом Vue при реализации функции удаления для моего компонента GridView в моем компоненте Добавить актив.
Когда я перетаскиваю 5 изображений в компонент и переключаюсь в вид сетки, я вижу все 5. Я затем выбираю два и нажимаю кнопку удаления, когда он обрабатывает два выбранных, и одно дополнительное удаляется.
Я проследил за ним через консольный отладчик и по какой-то причине он дважды запускает процесс удаления. Кажется, я не могу понять, почему так обращаюсь за помощью в отслеживании этого.
Вот код моего процесса ImageGridView. vue (часть компонента изображения)
eventBus.$on('confirmationYes', () => {
eventBus.$emit('processFileDeletion', this.selectedFiles)
this.clearSelectedFiles()
this.deleteConfirmation = false
})
ImageSection. vue (компонент изображения)
deleteSelected (indexes) {
eventBus.$emit('deleteSelectedFiles', indexes)
let numberOfItems = indexes ? indexes.length : 0
if (numberOfItems === -1) {
numberOfItems = this.currentPosition
}
return
if (this.currentPosition >= numberOfItems) {
this.currentPosition -= numberOfItems
}
}
Событие в ImageSection. vue
eventBus.$on('processFileDeletion', (indexes) => {
this.deleteSelected(indexes)
})
Событие в моем компоненте Добавить актив
eventBus.$on('deleteSelectedFiles', (indexes) => {
if (!indexes || indexes.length === 0) return
this.deleteSelected(indexes.sort().reverse())
if (this.newItem.files.fileList.length === 0) {
// this.currentPosition = 0
this.display = 'single'
}
})
процесс удаления в моем компоненте добавления активов
deleteImage (index = -1) {
this.newItem.files.fileList.splice(index, 1)
},
deleteSelected (indexes) {
const files = this.newItem.files.fileList
for (let i = 0; i < indexes.length; i++) {
this.deleteImage(indexes[i])
}
files.map((file) => {
file.isVisible = false
})
},
В течение последних трех часов я пытался отследить это, мне нужны свободные глаза sh, чтобы посмотреть, где я Я ошибаюсь или если мне нужно go в совершенно новом направлении.
заранее спасибо