개발자

createRoot를 import하는데 에러메시지가 표시됩니다

2022년 10월 17일조회 267

create-react-app을 사용해서 앱을 만들고 있습니다. React 18로 업데이트하고 최상위 index 파일을 다음과 같이 수정했는데 // index.js import React from 'react'; import ReactDOM from 'react-dom'; import { createRoot } from 'react-dom/client'; import App from './App'; const rootNode = document.getElementById('root'); const root = ReactDOM.createRoot(rootNode); root.render( <React.StrictMode> <App /> </React.StrictMode> ); "Warning: You are importing createRoot from 'react-dom' which is not supported. You should instead import it from 'react-dom/client'"라는 에러메시지가 표시됩니다. createRoot를 사용하도록 수정하는 게 아닐까요? 대안이나 해결방법이 있을까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

이은재님의 프로필 사진

안녕하세요. createRoot를 import해서 꺼내쓰는 방식이 약간 잘못된 것 같습니다. 지금은 react-dom을 import한 ReactDOM에서 createRoot를 사용하고 계시는데 react-dom/client를 import 하신 것에서 createRoot를 사용하셔야 할 것 같아 보여요. 공식문서 예제에는 import를 다음과 같이 하고 있습니다. 이런식으로 사용하시면 될 것 같아요. https://reactjs.org/docs/react-dom-client.html import * as ReactDOM from 'react-dom/client'; const root = ReactDOM.createRoot(rootNode) 바꾸게 된 계기를 설명한 글에 보면 server와 구분해서 ReactDOMClient로 import를 하기도 하는데(https://github.com/reactwg/react-18/discussions/125). 이름은 편하신 방법으로 선택해서 import하시면 될 것 같습니다.

profile picture

익명

작성자

2022년 10월 18일

답변 달아주셔서 감사합니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!