<input {...register("image")} id="picture" type="file" />
file
형식의 <input>
태그에 image
를 받는 register
를 추가한다.
const { watch, } = useForm();
const [imagePreview, setImagePreview] = useState("");
const image = watch("image");
useEffect(() => {
if (image && image.length > 0) {
const file = image[0];
setImagePreview(URL.createObjectURL(file));
}
}, [image]);
<img src={imagePreview} />
useForm
의 watch
로 업로드한 이미지 정보를 얻고, URL.createObjectURL
로 브라우저에게 이미지 접근 권한을 부여한다. 접근 가능한 주소를 setImagePreview
에 넣어주고 <img>
태그의 소스로 추가한다.