Одно свойство отсутствует при отправке объекта FormDataJavascript

Форум по Javascript
Ответить
Anonymous
 Одно свойство отсутствует при отправке объекта FormData

Сообщение Anonymous »

Я отправляю данные в бэкэнд. Данные включают Patent_name , возраст , date и medication_files , которые взяты из активной записи. Я поделюсь каким -нибудь кодом и скриншотом, чтобы помочь более опытным парням помочь мне. Api < /p>
import { Formik, Field, Form, FieldArray, ErrorMessage } from 'formik';
import './PrescriptionForm.scss';
import { prescriptionSchema } from '../../utils/schema';
import axios from 'axios';
import { getCookie } from '../../utils/helper/tokenHandler';

const PrescriptionForm = () => {
console.log("Debugging!!!");
const handleSubmit = async (
values: {
patientName: string;
age: number;
gender: string;
date: string;
medicationFiles: File[];
},
{ setSubmitting, resetForm }: { setSubmitting: (isSubmitting: boolean) => void; resetForm: () => void }
) => {

const token = getCookie();

const formData = new FormData();

formData.append('prescription[patient_name]', values.patientName);
formData.append('prescription[age]', values.age.toString());
formData.append('prescription[gender]', values.gender);
formData.append('prescription[date]', values.date);

console.log('Type:', typeof values.medicationFiles);

if (values.medicationFiles && values.medicationFiles.length > 0) {
values.medicationFiles.forEach((file) => {
formData.append('prescription[medication_files][]', file);
});
}

console.log('Files appended to FormData:');
Array.from(formData.entries()).forEach(([key, value]) => {
console.log(`${key}:`, value);
});

console.log('medicationFiles:', values.medicationFiles);

try {
console.log("Submitting prescription with values:", values);
console.log("Form data:", formData);
const res = await axios.post(
'http://localhost:3000/api/v1/prescriptions',
formData,
{
headers: {
Authorization: `Bearer ${token}`,
},
}
);
console.log(res);
alert('Prescription submitted successfully!');
resetForm();
} catch (error) {
console.error('Submit error:', error);
if (
typeof error === 'object' &&
error !== null &&
'response' in error &&
(error as any).response?.data?.errors
) {
alert('Submission failed: ' + (error as any).response.data.errors.join(', '));
} else {
alert('An unexpected error occurred. Please try again.');
}
} finally {
setSubmitting(false);
}
};

return (

{({ values, isSubmitting, setFieldValue }) => (

Prescription Form

Patient Name



Age
(value === '' ? 0 : Number(value))}
/>


Gender

Select
Male
Female
Other



Date



Medication File
{
const files = Array.from(e.currentTarget.files || []);
setFieldValue("medicationFiles", files);
}}
/>


Submit

)}

);
};

export default PrescriptionForm;


Подробнее здесь: https://stackoverflow.com/questions/796 ... ata-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»