인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

D_One님의 프로필 이미지
D_One

작성한 질문수

React로 NodeBird SNS 만들기

2-1. _app.js로 레이아웃 분리하기

질문이요

작성

·

3.4K

0

1. 

import React from 'react';
import Head from 'next/head'
const index = () => {

    return(
        <>
<div> Hello </div>
</>
    )
}

export default index

현재 인덱스 페이지를 만들고 있는데요, 

Warning: Did not expect server HTML to contain a <div> in <div>.

이런 경고가 뜨는데요, 

원인이, 

        <React.Fragment>
 <div> Hello </div>
 </React.Fragment>

이 부분인데 따로 해결 방법이 없나요 ?? 

<React.Fragment> 도 같더라구요... 

2. 

  return (
    <>
      <Head>
        <title>NodeBird</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/antd/3.16.2/antd.css" />
      </Head>
      <AppLayout>
        <Component />
      </AppLayout>
    </>

_app.js 에서 , pages 폴더에 들어있는 모든페이지를 Component로 받잖아요. 

혹시 골라서만 받을 수도 있나요 ?

예를 들어서, a, b, c 가 pages 폴더에 있다고 치면은, 

a 와 b 만 AppLayout이 적용된 component로 받고, 

c 는 그냥 compoennt로 받는 식으로요.. 

삼항 조건문을 써서, c 에게는 AppLayout 적용을 안시키려고, compoennt 를 console.log로 print 해보니, 딱히, 

페이지이름은 안뜨고 이상한게 뜨더라구요...

혹시 방법 아시나요?? 

 

답변 1

3

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 저것은 서버사이드 렌더링 시와 클라이언트 사이드 렌더링 시 html 구조가 살짝 달라서 발생하는데요. 저것은 완벽하게 해결하기 좀 어렵습니다. 그리고 크게 문제가 되지는 않습니다.

2. next는 nuxt와는 다르게 레이아웃 시스템이 갖춰진 게 없어서, 저렇게 글로벌 레이아웃을 사용하고싶지 않으시다면, 개별적으로 pages의 컴포넌트들에 레이아웃을 각각 씌워줘야 됩니다.

D_One님의 프로필 이미지
D_One

작성한 질문수

질문하기