Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 중복단어제거
- 단어 제거
- 시퀄 문법
- 문자열순서바꾸기
- 중첩배열평탄화
- sql 문자열 패턴 검색
- 스프링 데이타 JPA
- 객체의키값만 찾기
- indexOf()
- 레디스 확인
- 깃 토큰 만료
- 프론트엔드 스쿨
- 배엘에서 스왑
- ...점점점문법
- 우분투 시간 변경
- 중복된 단어
- 5.3.8 Modifying Queries
- 중첩배열
- 제로베이스
- 문자열 중복
- js 문자열을 문자배열로
- 객체의 밸류값만 찾기
- lastIndexOf()
- ubuntu타임존
- 재귀스왑
- @Moditying @Query
- 아래로펼치기
- 중복 문자열
- 코딩 어?
- 중복문자제거
Archives
- Today
- Total
코딩기록
TDZ) ReferenceError: Cannot access 'bucket' before initialization 본문
728x90
TDZ란?
Temporal Dead Zone (일시적 사각지대) 오류
에러메시지 예시
ReferenceError: Cannot access 'bucket' before initialization
✅ 주인님의 코드 문제 요약
const bucket = { id: _bucket.id, ..._bucket.data() };
여기서 bucket은 이미 매개변수 이름으로 사용 중인데,
같은 이름으로 **지역 변수 const bucket**를 선언하면 스코프 충돌이 발생.
JS는 변수 이름이 겹치면 **"호이스팅 후 TDZ에 걸린 상태"**로 간주해서 아래 에러 발생
❗ Cannot access 'bucket' before initialization
🔍 TDZ (Temporal Dead Zone)란?
ES6부터 let이나 const로 선언된 변수는 선언되기 전에는 접근할 수 없다.
이 "접근 불가한 시점"을 **일시적 사각지대 (TDZ)**라고 부른다.
✅ 해결 방법
변수 이름이 겹치지 않도록 바꿔주면 끝.
export const addList = (list) => {
return async function (dispatch) {
const docRef = await addDoc(collection(db, "list"), list);
const _list = await getDoc(docRef);
const newList = { id: _list.id, ..._list.data() }; // ✅ 이름 변경
console.log("newList: ", newList);
};
};
✅ 정리
문제원인해결 방법
Cannot access 'list'... | 매개변수 이름과 지역 변수 충돌 | 변수 이름 변경 (newList) |
이건 TDZ(Temporal Dead Zone) 에러 | let/const는 선언 전에 접근 불가 | 같은 이름 재사용 피하기 |
참고
쳇지피티
반응형
'프론트 > 리액트' 카테고리의 다른 글
텍스트 커서-깜빡이는 막대기 " | " 없애기 (0) | 2025.06.26 |
---|---|
리액트, Next.js) height를 부드럽게 열고 닫는 framer-motion 라이브러리 (2) | 2025.06.26 |
색상에 따라 텍스트 배경 바꾸기 (0) | 2025.06.20 |
Next.js) 폴더명에 []대괄호 사용- 동적라우팅 (1) | 2025.06.20 |
Carousel) Swiper(스와이퍼)- 반응형 슬라이드(캐러셀) 라이브러리 (0) | 2025.06.18 |
Comments