문제
새로고침을 했더니
'className did not match'
에러가 뜨며 css가 모두 사라져 버리는 현상 발생
이유는 서버에서 받은 해시 + 클래스명과 새로고침 후 클라이언트에서 받은 해시+클래스명이 달라서 발생하는 문제였다.
해결방법
1. 바벨 플러그인 설치
yarn add babel-plugin-styled-components
2. .babelrc설정
파일 생성 후 아래 코드 작성
{
"presets": ["next/babel"],
"plugins": ["babel-plugin-styled-components"]
}
참고
Next.js TS 리렌더링시 Styled-Components 적용 안되는 에러
Next와 styled-components를 쓰게 되면 브라우저 로딩이 끝나야 CSS 적용이 되거나 새로고침을하게되면 css가 적용이 안된다.Next가 먼저 정적으로 생성된 HTML을 렌더후 나머지 JS파일을 로드하게 된다.JS
velog.io
[Next.js] renderPage 함수로 styled-components 오류 방지하기.
React 에서 스타일링을 위한 라이브러리에서는 개인적으로 단연 styled-components가 압도적으로 좋다고 생각한다. 하지만 Next에서는 styled-components가 제대로 동작하지 않을 수 있다. 오늘 그 오류들을
wonit.tistory.com
'Front > React' 카테고리의 다른 글
[React] 동기 / 비동기 통신 (0) | 2023.08.28 |
---|---|
[React] 카카오 지도 구현 (0) | 2023.04.24 |
[React] Edit Page 보완 - defaultValue와 myvariables (0) | 2023.03.18 |
[Error] cSpell Unknown word 무시하기 (0) | 2023.03.16 |
[React] 컴포넌트(Component) 재사용 (0) | 2023.03.16 |