Проблема передачи файла между компонентами

Пытаюсь передать файл из input=file в родительский компонент.
Дочерний компонент:

<template>
  <div>
    <input type="file" @change="onFileChange" />
  </div>
</template>

<script>

    function onFileChange(event) {
      const file = event.target.files[0]; // Получаем файл из input
      emit('file-selected', file); // Передаем файл родителю
    }
 

Родительский компонент ловит эмит и он виден и в консоли, и в vue devtools

<ProfileContact //компонент
    ref="RequestProfileComponent" 
    @file-selected="handleFileSelected" // ловим файл
    @callParentMethod="handleParentMethod" 
    @callErrorProfile="errorProfile"
    @callNormComponent="updateErrors" />

const formDataTest = ref<formDataTest>({}) // реф


// сама функция
function handleFileSelected(selectedFile: File) {
  formDataTest.value.img = selectedFile; // Сохраняем выбранный файл в родительском компоненте
}

Но при попытке передать уже на сервер img превращается в пустой объект, хотя всё работает, если передавать другие данные, например, строки или числа.

const RegistrationUser = async (formDataTest: any) => {
  try {
    const response = await registration(formDataTest)
  } catch (e: any) {
    messageCondition.value = e.response.data.message
    condition.value = true
  }
}

Это все работает, только если внутри функции создать объект и уже передать его в RegistrationUser

const formData = new FormData()
if (formDataTest.value.img) {
    formData.append('img', formDataTest.value.img || '')
}

RegistrationUser(formData)

Объясните пожалуйста, в чем разница создавать объект внутри функции или делать ref, хотя это такой же объект?


Ответы (0 шт):