오류. 폴더선택 눌러서 사진을 선택했다가 다시 폴더선택 눌렀다가 취소하면 오류 발생
오류가 난 이유
파일을 선택한 후 다시 파일 선택하려고 폴더열기 했다가 변심해서 취소를 누르게되면 file이 undefined가 된다. 그럴경우 reader.readAsDataURL(file);이 실패라는 오류가 나온다.
해결방안

// 기존 파일 미리보기
const filePreview = (e) => {
const reader = new FileReader();
const file = fileInput.current.files[0];
reader.readAsDataURL(file);
reader.onloadend = () => {
// console.log(reader.result);
dispatch(setPreview(reader.result));
};
setFileData(e.target.files[0]);
e.target.value = '';
};
기존 코드로 진행 했을때 위 사진의 오류가 나왔다.
const [fileData, setFileData] = React.useState(null);
// 파일 미리보기 (오류 해결 코드)
const filePreview = (e) => {
const reader = new FileReader();
const file = fileInput.current.files[0];
//file이 undefined일 경우 예외처리
if (file === undefined) {
dispatch(setPreview(reader.result));
setFileData(file);
} else {
reader.readAsDataURL(file);
reader.onloadend = () => {
// console.log(reader.result);
dispatch(setPreview(reader.result));
setFileData(file);
};
}
};
if (fileData) {
formData.append('profile', fileData);
}
파일을 선택한 후 다시 파일 선택하려고 폴더열기를 했다가 변심해서 취소를 누르게되면 file이 undefined가 되고, 그럴경우 reader.readAsDataURL(file);이 실패라는 오류가 나온다. 그래서 file이 undefined일 경우인 예외 처리를 추가해줬다. file이 undefined일 경우 오류가 나왔던 reader.readAsDataURL(file);이부분은 제거했다. reader.readAsDataURL(file);이부분이 제거 됐기때문에 변심해서 취소를 누르게되면 기존에 저장된 사진으로 돌아가게된다.
위 사진을 통해 오류 없이 취소를 눌러도 기존사진으로 잘 돌아가는 걸 확인할 수 있다.😊