[Next.js] Next.js와 styled-components

2023. 3. 2. 13:35·Next.js/버그
반응형

Next.js에서 styled-components를 같이 사용할 때 오류가 발생했다. 

찾아보니 styled-components를 사용했을 때의 className과 실제 적용되었을 때의 className이 달라서 발생하는

문제였다.

 

최초 실행 시에는 css가 제대로 적용이 되었는데, 페이지 이동 & 새로고침이 발생했을 때 위와 같은 오류가 나오면서 

css가 적용이 되지 않았다. 

 

찾아보니 next.js에서 초기 렌더링은 ssr로 적용되고, 이후 페이지 이동 등은 csr로 렌더링이 된다. 

초기 렌더링 시에는 ssr로 적용되기 때문에 문제가 없었지만 이후 csr로 적용되기 때문에 클래스 명이 맞지 않아서 

발생한 것 같다. 

 

해결 방법

구글에 검색 했을 때 기본적으로 해결하는 방법이 있었다. 

.babelrc에서 설정을 통해서 해결 또는 _app.js에 설정을 통해서 해결 

 

하지만 나는 이 두 방법 모두 사용해봤는데, 해결이 되지 않았다. 

그래서 이것이 개발 환경에서의 문제라고 생각해서 다른 방법을 찾아봤는데, 알아낸 키워드가 macro이다. 

 

내 환경에서는 babel-macro라는 것을 사용했는데, styled-components에서 macro 시 사용하는 것이 있었다. 

import styled , { createGlobalStyle } from 'styled-components/macro'

기본적으로 사용하는 방법은 같지만 styled-components/macro에서 가져오는 것이다. 

 

실제로 이렇게 사용하니 문제를 해결했다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Next.js > 버그' 카테고리의 다른 글

Lighthouse 실행에 영향을 미치는 문제가 발생했습니다.  (2) 2024.04.18
[Next.js] Next.js 배포 시 발생한 문제 ( 'Build optimization failed: found page without a React Component as default export in pages/...' error )  (0) 2023.03.22
'Next.js/버그' 카테고리의 다른 글
  • Lighthouse 실행에 영향을 미치는 문제가 발생했습니다.
  • [Next.js] Next.js 배포 시 발생한 문제 ( 'Build optimization failed: found page without a React Component as default export in pages/...' error )
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    react
    타입스크립트
    덤프
    next.js
    Babel
    리액트
    프로그래머스
    typescript
    webpack
    리얼학습일기
    리얼클래스
    식물
    자바스크립트
    바질 키우기
    Node.js
    네이버 부스트캠프
    타일러영어
    javascript
    영어회화
    바질
    ChatGPT
    CSS
    다이소
    CCNA
    네트워크
    ReactNative
    redux
    알고리즘
    Docker
    영어독학
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[Next.js] Next.js와 styled-components
상단으로

티스토리툴바