ReactDOM.render is no longer supported in React 18.

eunji lee·2022년 6월 21일
0

버그리포팅

목록 보기
4/6

Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot

  • "react": "^18.2.0" 버전을 쓰고 있음
    -새로 나온 리액트 18에서는 ReactDOM.render가 아니라, createRoot를 사용해야 한다.
const root = document.getElementById('root');

ReactDOM.createRoot(rootNode).render()
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { Provider } from 'react-redux';
import store from './app/store'


const root = document.getElementById('root');

ReactDOM.createRoot(root).render(
  <Provider store = {store}>
  <App />
  </Provider>
)

->err : Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element | DocumentFragment'

  1. package.json에서 @types/react-dom 버전 확인
"dependencies": {
 "@types/react-dom" 의 버전(18 이상) 
  1. tsconfig.json에 옵션 추가
"types": [  	
      "react/next", 
      "react-dom/next", ], 
  1. index.tsx 에 예외처리 에러 코드 추가or 타입 단언
if (!root) throw new Error('Failed to find the root element');

///OR 

const root = document.getElementById('root') as HTMLElement;
profile
안녕하세요! 이은지 입니다.

0개의 댓글