• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Next.js 게시판 특정 화면에서 컴포넌트 숨기기 (use client 이용)

특정 화면에서 컴포넌트 숨기기 (use client 이용)

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #97528

    변재정
    참가자
    로그인페이지(/user-page)에서 footer컴포넌트를 안띄우는 기능을 구현하고싶어
    footer 컴포넌트를 csr 방식으로 사용하도록 'use client' 줬습니다. 
    근데 error ReferenceError: window is not defined 라는 에러가 뜨면서 적용이 안되네요ㅠㅠ
    nextjs는 ssr이니까 window에 접근하기 위해선 'use client'를 주면 된다고 들었는데 왜 안되는걸까요??
    찾아보니까 useEffect 쓰라해서 useEffect도 써봤는데 에러가 뜨진않지만 여전히 적용안되더라구요.
    문제점 알려주시면 감사하겠습니다ㅠㅠㅠ
    
    
    <footer.tsx 파일>
    'use client'
    import React, { useEffect } from 'react'
    import style from '../styles/footer.module.scss'
    const Footer = () => {
        if (window.location.pathname === '/user-page') return null
    return (
    ~~footer jsx영역~~
    )
     
    <루트 layout.tsx 파일>
    'use client'
    export default function RootLayout({
        children,
    }: {
        children: React.ReactNode
    }) {
        return (
            <html lang="ko">
                <body className={inter.className}>
                    <div className="wrap bg-white">
                        <Header />
                        {children}
                        <Footer />
                    </div>
                </body>
            </html>
        )
    
    
    		
    	
    #97562

    codingapple
    키 마스터
    window 어쩌구는 useEffect안에 써야 잘됩니다
    #97870

    변재정
    참가자
    찾아보니까 next는 window 접근 지양하는 것이 좋다네요
    window접근안하고 usepathname 훅 사용해서 해결했습니다ㅎㅎ
    답변 감사합니다!!
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠