#javascript #windows #vue.js #electron
#javascript #Windows #vue.js #электрон
Вопрос:
Я работаю над приложением vue-electron. У меня есть некоторые проблемы со сборкой Windows. Кажется, что когда пользователь выбирает некоторые файлы, и я пытаюсь получить их с помощью $refs
, это не сработает. У меня есть простой ввод файла, подобный этому
<input type="file" class="custom-file-input" ref="selectedImages" @change="handleFiles()">
В мой код компонента vue я добавил метод, который называется handleFiles()
он будет получать только путь к файлам и тип для каждого файла, который находится в объекте file
this.$refs.selectedImages.files.forEach( (file) => {
const fileDetails = {path: file.path, type: file.type}
this.files.push(fileDetails);
});
Код отлично работает на macOS, и ошибок не возникает, файлы выбраны и правильно повторяются из цикла. Проблема возникнет только в сборке Windows, где кажется, что ввод файла не выбран с помощью $refs
. Есть ли какое-либо решение для решения этой проблемы? Я подумываю заменить $refs
на for
цикл, но не уверен.
Редактировать
Я переключился с forEach()
цикла на for()
. Теперь ошибка кажется решаемой, но я заметил проблему с путем к файлу, когда они передаются в основной процесс. На моей тестовой машине virtualbox win10 я обнаружил в консоли, что путь к файлам указан неверно
если указан путь к файлу C:UsersdebugDesktopfilename.jpg
, он будет передан с дополнительным символом косой C:\Users\debug\Desktop\filename.jpg
черты. Возможно ли это исправить?
Ответ №1:
Список файлов не является массивом. Попробуйте преобразовать его в массив:
Array.from(this.$refs.selectedImages.files).forEach( (file) => {
const fileDetails = {path: file.path, type: file.type}
this.files.push(fileDetails);
});