일정으로 인해 며칠간 동작하지않다 실행시키니 “Component auth has not been registered yet”라는 에러와 함께 firebase의 export const auth = getAuth(app); 구문에서 에러 발생
⭐️ SOLVE?
1. 공식문서를 확인하니 11/9에 10.6.0 으로 version update 되어서 firebase@latest 로 package 업데이트
2. import 구문에서 from에서 "@firebase/app"나 "@firebase/firestore"와 달리 auth의 경우만 "firebase/auth"을 발견 후 "@firebase/auth"으로 수정하니 오류 없이 진행됨
🤷♀️ WHY?
chatgpt에게 차이점을 물어보니 @firebase/auth ****의 경우 모듈식 SDK, firebase/auth 의 경우 기본(전통적인)SDK 방식이라고 하며, 내가 사용하던 getAuth의 경우 모듈식이었으므로@firebase/auth 가 맞는 from 출처이다. 확실하지는 않으나 버전이 업데이트 되면서 구분이 명확해져 생긴 오류로 보인다.
Modal Component 내에서 useState Hook을 사용하고자 호출하였으나 호출에러 발생
⭐️ SOLVE?
if (!isOpen) return null; 구문을 시작으로 Modal Component가 호출되고 있음을 발견
이후 호출 순서 변경
**기존 코드**
export default function Artwork_Modal({
isOpen,
closeModal,
artworkInfo,
currentUser,
}: ModalProps) {
if (!isOpen) return null;
const [isSaved, setIsSaved] = useState<boolean>(false);
...
}
**변경 코드**
export default function Artwork_Modal({
isOpen,
closeModal,
artworkInfo,
currentUser,
}: ModalProps) {
const [isSaved, setIsSaved] = useState<boolean>(false);
if (!isOpen) return null;
...
}
🤷♀️ WHY?
useState 훅이 함수 컴포넌트 내에서 조건에 따라 호출되고 있기 때문에 React Hooks의 호출 조건을 무시했기 때문에 발생한 오류이다. 호출 조건은 다음과 같다.
기본적인 규칙이지만 너무 익숙해서 잊고 진행함에서 발생한 오류라고 생각한다.