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

alsdl413211님의 프로필 이미지
alsdl413211

작성한 질문수

처음 만난 리액트(React)

(실습) 댓글 컴포넌트 만들기

npm start 이후 크롬창에 아무것도 뜨지않음

작성

·

1.8K

2

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

사진 첨부 순서대로 index.js, Comment.jsx, CommentList.jsx, npm start시 출력되는 크롬 화면입니다.

이전 시계 실습에서도 동일하게 빈 화면이 출력 됐는데 타 수강생님이 올려주신 코드를 적용하니 해결이 됐어서 다음 챕터를 진행하였습니다. 그런데 동일하게 빈화면이 출력되어 어떤 부분에서 문제가 있는지 도저히 찾을 수 없어서 질문드립니다.

 

 

답변 2

2

Inje Lee (소플)님의 프로필 이미지
Inje Lee (소플)
지식공유자

안녕하세요, 소플입니다.

index.js 파일에서 ReactDOM.render()를 사용하는 부분을,

아래와 같이 ReactDOM.createRoot()를 사용하는 형태로 변경해주시면 됩니다.

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <CommentList />
  </React.StrictMode>
);

현재 실습을 하시는 환경이 리액트 버전18일텐데,

이전 버전의 리액트에서 사용하는 방식으로 코드를 작성하셔서 제대로 실행이 안 되었을 겁니다.

앞으로는 아래 링크에 있는 실습 코드를 참고해서 진행해주세요~

https://github.com/soaple/first-met-react-practice-v18

 

그리고 index.js 파일은 모든 실습에서 크게 바뀌는 부분이 없기 때문에 각 챕터 별로 따로 만들어 두지 않았습니다.

아래 코드처럼 각 장에서 만든 컴포넌트를 import해서 root.render() 안에 넣어주는 부분만 계속해서 바뀐다고 보시면 됩니다.

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

import Library from './chapter_03/Library';
import Clock from './chapter_04/Clock';
import CommentList from './chapter_05/CommentList';
import NotificationList from './chapter_06/NotificationList';
import Accommodate from './chapter_07/Accommodate';
import ConfirmButton from './chapter_08/ConfirmButton';
import LandingPage from './chapter_09/LandingPage';
import AttendanceBook from './chapter_10/AttendanceBook';
import SignUp from './chapter_11/SignUp';
import Calculator from './chapter_12/Calculator';
import ProfileCard from './chapter_13/ProfileCard';
import DarkOrLight from './chapter_14/DarkOrLight';
import Blocks from './chapter_15/Blocks';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Blocks />
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

 

실습 진행하시다가 또 궁금한 점 있으시면 언제든지 질문 남겨주세요!

감사합니다.

alsdl413211님의 프로필 이미지
alsdl413211
질문자

자세하고 친절한 답변 정말 감사드립니다. 비전공자라 혼자 해결하는게 어려웠는데 설명덕분에 쉽게 이해하고 학습하고 있습니다! 감사합니다!

저도 막혔었는데, 감사합니다.

한참 헤매다가 발견했습니다! 많은 도움이 되었습니다 감사합니다 :)

1

alsdl413211님의 프로필 이미지
alsdl413211
질문자

추가적으로 강사님이 공유해주신 깃헙 코드 저장소에는 각 챕터마다 index.js는 따로 없어서 어떻게 참고해야할지도 여쭤보고 싶습니다

위에서 강사님이 댓글로 이렇게 적어주셨습니다!

"그리고 index.js 파일은 모든 실습에서 크게 바뀌는 부분이 없기 때문에 각 챕터 별로 따로 만들어 두지 않았습니다.

아래 코드처럼 각 장에서 만든 컴포넌트를 import해서 root.render() 안에 넣어주는 부분만 계속해서 바뀐다고 보시면 됩니다."

alsdl413211님의 프로필 이미지
alsdl413211

작성한 질문수

질문하기