Материал 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 ашиглан файл илгээх функцийн имплементаци хийж байхдаа янз бүрийн алдаанууд учирч болзошгүй боловч, энэ нийтлэлийн агуулгыг үндэс болгож зөв зохистой ажиллавал хялбархан хөгжүүлэлт хийх боломжтой болно.