Подскажите пожалуйста, что тут не так??? По идее value трекается через v-model. Однако даже в консоль выпадает результат null. На сервер уходит null и его не пускает валидация.
Отправка данных через useFetch.
<template>
<div>
<h4>Добавление новой книги</h4>
<form @submit.prevent="submitForm">
<div>
<label for="upload_cover">Обложка:</label>
<input type="file" id="upload_cover" name="upload_cover" v-on:change="formData.upload_cover" />
</div>
<div>
<label for="title">Заголовок:</label>
<input type="text" id="title" name="title" v-model="formData.title" />
</div>
<div>
<label for="published_year">Год публикации:</label>
<input type="number" id="published_year" name="published_year" v-model="formData.published_year" />
</div>
<button type="submit">Отправить</button>
</form>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const formData = ref({
upload_cover: null as File | null,
title: '',
published_year: 1999,
});
const submitForm = async () => {
const { data: responseData } = await useFetch('https://api.storage/api/v1/books', {
method: 'POST',
body: {
upload_cover: formData.value.upload_cover,
title: formData.value.title,
published_year: formData.value.published_year,
}
})
console.log(responseData.value)
}
</script>