Материал UI (MUI) нь React аппликейшнүүдийн интерфейсийг хөгжүүлэхэд зориулагдсан алдартай номын сан юм. Гэсэн хэдий ч файл илгээх функцийг хэрэгжүүлэхэд олон нийтлэг алдаа, асуудлаас үүдэлтэй тулгардаг. Энэ нийтлэлд Материал UI ашиглан файл илгээхэд тулгардаг нийтлэг алдаанууд болон хувийн шийдлүүдийг танилцуулах болно.
React Hook Form-тай хамтран ажиллаж байгаа тохиолдолд файл сонгосны дараа формын утгууд шинэчлэгдэхгүй, баталгаажуулах алдаанууд үлддэг.
Шийдэл: setValue функцийг ашиглан утгыг тодорхойлно.
import { useForm } from 'react-hook-form';
const { register, setValue, handleSubmit, formState: { errors } } = useForm();
const handleFileChange = (event) => {
const file = event.target.files[0];
setValue('uploadFile', file);
};
Шийдэл: Button компонентод component="label" -ыг зааж өгнө үү.
<Button variant="contained" component="label">
Файл сонгоно уу
<input type="file" hidden onChange={handleFileChange} />
</Button>
accept атрибутыг үл тоомсорлохШийдэл: Хүндэт input элемент ашиглах эсвэл атрибутуудыг нь тусгайлаж өгнө үү.
<input type="file" accept=".jpg,.png" onChange={handleFileChange} />
Шийдэл: JavaScript ашиглан баталгаажуулалт нэмнэ.
const handleFileChange = (event) => {
const file = event.target.files[0];
const maxSize = 2 * 1024 * 1024; // 2MB
const allowedExtensions = ['jpg', 'png'];
const fileExtension = file.name.split('.').pop().toLowerCase();
if (file.size > maxSize) {
alert('Файлын хэмжээ хэтэрсэн байна.');
return;
}
if (!allowedExtensions.includes(fileExtension)) {
alert('Зөвшөөрөгдсөн файл форматын бус байна.');
return;
}
// Файл шаардлагыг хангаж байвал үйлдлийг гүйцэтгэнэ
};
MuiFileInput ашиглахад setValue -ыг ашиглан формын утгуудыг шинэчилсэн эсэхButton -д component="label" -ыг зааж өгсөн эсэхinput элементын accept атрибут зөв ажиллаж байгаа эсэхФайл илгээх функцийг тест хийх, туршилтад хэрэглэхэд тохиромжтой хэрэгслүүдийн нэг нь UploadF юм.
Материал UI ашиглан файл илгээх функцийн имплементаци хийж байхдаа янз бүрийн алдаанууд учирч болзошгүй боловч, энэ нийтлэлийн агуулгыг үндэс болгож зөв зохистой ажиллавал хялбархан хөгжүүлэлт хийх боломжтой болно.