Warning: Prop
className
did not match.
next.js로 개인 프로젝트를 진행하면서 pagination을 구현하던 중 특정 버튼을 컴포넌트로 만들어 넣어주면서 위와 같은 경고 메세지가 발생했다.
※ Next.js 12버전부터 babel 대신 swc를 사용하여 컴파일하도록 변경되었다
=> next.config.js 파일의 nextConfig 속성으로 compiler: {styledComponents: true}
를 추가해준다.
/** @type {import('next').NextConfig} */
module.exports = {
reactStrictMode: true,
swcMinify: true,
compiler: {
styledComponents: true,
},
}
결과적으로 해당 속성을 추가해주면, 서버와 클라이언트 환경에 따라 달라지는 'className' props를 일관되게 해주며, swc(speedy web compiler)를 사용하면서 문제를 해결할 수 있다.
*babel을 사용하고 있는 경우에는 다른 방식으로 문제 해결을 할 수 있다.