반응형
프로필 이미지 변경 관련 로직을 구현하던 중 만난 에러였다.
// 프로필 이미지 수정을 위한 ref
const fileInput = useRef<HTMLInputElement>(null);
프로필 이미지 변경 기능 구현을 위해 useRef를 사용하여 파일 업로드를 위한 <input> 태그를 가리키거나,
프로필 이미지 클릭 시 프로필 이미지를 가리킬 수 있도록 만들고 있던 찰나
// 프로필 이미지 클릭시 파일 업로더 뜸
const onClickImg = () => {
fileInput.current.click();
};
위의 코드에서 '개체가 null인 것 같다는 에러가 뜨고 말았다ㅠㅠ 타입스크립트 너 진짜 깐깐하다!!!
구글링을 해보니, useRef를 선언할 때, 초기값으로 null을 준 것이 원인이였다. useRef는 초기값을 current에 저장하기 때문에 사용하려고 할 때 null인 것 같다는 에러가 뜬 것이였다.
해결 방법은 두 가지가 있었다.
- useRef의 type을 any로 한다.
- useRef의 타입은 그대로 놔두고 current를 사용하는 곳을 수정해준다.
type을 any로 두는 것은 최대한 지양하고 싶었기에 2번을 선택하여 적용해보았다.
// 프로필 이미지 클릭시 파일 업로더 뜸
const onClickImg = () => {
if (fileInput.current) {
fileInput.current.click();
}
};
성공!
아직도 type 지정은 너무 어렵다..ㅠㅠ
참고한 블로그
반응형
'코드스테이츠 SEB FE 41기 > Main-Project(MatP)' 카테고리의 다른 글
[react] star-rating 구현하기 2탄(이번엔 소수점까지!) (0) | 2023.01.25 |
---|---|
[react & typeScript]'개체가 null인 것 같습니다' 에러 해결하기 (0) | 2023.01.25 |
[react] navigate 시 props 전달하기 (0) | 2023.01.22 |
[react] 구조 분해 할당 이름 변경하기(feat.typeScript) (0) | 2023.01.22 |
[react] props를 state로 설정하여 state 변경 실시간 업데이트해주기(feat. Typescript) (0) | 2023.01.22 |