Front/React
Next.js 리렌더링하면 Styled-Components 적용 안됨
soyeon26
2023. 4. 13. 13:47
문제
새로고침을 했더니
'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