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
- 프로그래머스
- 프로그래머스코테
- 프로그래머스 레벨0
- 알고리즘스터디
- 코테공부
- html
- 프로그래머스 코테
- 알고리즘문제
- 코딩테스트
- 자바스크립트
- mysql
- 1일1코테
- 프로그래밍
- 알고리즘공부
- 개발자
- 코딩
- 프로그래머스알고리즘
- 정처기기출
- Redux-Toolkit
- 정보처리기사
- CSS
- 프로그래머스 Lv.0
- 프로그래머스 코딩테스트
- 프로그래머스코딩테스트
- 코테준비
- next.js
- 코테스터디
- next.js 에러
- 프로그래머스 알고리즘
- js
Archives
- Today
- Total
계발하는 개발자
[Next.js 에러] TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. 본문
❗️Error
[Next.js 에러] TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it.
dev_genie 2023. 9. 9. 10:16참고
에러
사용자 정의 컴포넌트를 만들고 styled-components를 통해 해당 컴포넌트에 테스트용 스타일을 입히고,
본 컴포넌트가 렌더링되는 페이지 경로로 이동했을 때 다음과 같은 에러가 떴다.
대충 직역해보면, "createContext는 클라이언트 컴포넌트에서만 작동합니다. (이를 사용하려면)파일 상단에 'use client' 지시문을 추가하세요." 란 에러메시지였다.
원인
next.js 공식문서에 들어가보면 아래와 같이 파일 상단에 'use client' 지시어를 정의하면,next.js에서는 해당 지시어 하위에 있는 컴포넌트를 포함, 파일로 가져온 다른 모듈들을 클라이언트 번들의 일부로 간주하고, 서버에서 이를 미리 렌더링시킨다고 한다.이를 달리 바꿔 말하면, 해당 지시어 없이 컴포넌트를 렌더링시키려고 할 때, 서버에서는 이게 클라이언트 컴포넌트인지 모르고 지나치게 되고 이로 인해 컴파일 과정 상에 에러를 일으킬 수 있다는 것..!(원래 진입점이 되는 파일 상단에서만 한 번 써주면 되는데, 내가 그걸 안해놔서 에러가 나는 것 같다.)
해결
에러메시지에서 하라는대로 파일 상단에 "use client"; 문구 하나 추가하니까 에러가 사라졌다.
그 결과로 배경색 lightblue가 잘 적용된 것을 볼 수 있다 :)
LIST
'❗️Error' 카테고리의 다른 글
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!