일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Javascript 정렬
- 자바스크립트 알고리즘
- next.js
- TypeScript
- 프로그래머스 자바스크립트
- 자바스크립트 배열
- JavaScript
- mysql스키마
- 타입스크립트
- 알고리즘
- binary search
- js 알고리즘
- TS
- MySQL
- 프로그래머스 자바스크립트 풀이
- 자료구조
- Javascript sort
- 맨해튼거리예제
- 티스토리챌린지
- 자바스크립트 정렬
- 오블완
- 프로그래머스 신규아이디추천
- 프로그래머스
- 깃허브
- 정렬 알고리즘
- 정규표현식문제
- node.js
- 키패드누르기풀이
- 맨해튼거리
- 좌표거리구하기
- Today
- Total
FE PARADISE
리액트 버전 18 - Warning: ReactDOM.render is no longer supported in React 18 - React v18 본문
리액트 버전 18 - Warning: ReactDOM.render is no longer supported in React 18 - React v18
PARADISE247 2022. 8. 2. 22:27Warning: ReactDOM.render is no longer supported in React 18 해결하기
기존에 React v17로 개발을 하다가 새로운 사이트를 개발하게 되어서 React 18 버전으로 새롭게 create-react-app을 했다.
React 18에서는 ReactDOM.render를 지원하지 않는다는 사실을 모른채 코드를 작성하고 다음과 같은 Warning을 받았다.
Warning: ReactDOM.render is no longer supported in React 18
!! 😳 놀란 나는 React 공식 사이트에서 react v18에 대해 알아보았다.
👇 참고 ) How to Upgrade to React 18 - 리액트 공식 사이트 Docs
https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
How to Upgrade to React 18 – React Blog
As we shared in the release post, React 18 introduces features powered by our new concurrent renderer, with a gradual adoption strategy for existing applications. In this post, we will guide you through the steps for upgrading to React 18. Please report an
reactjs.org
다음은 React 공식 사이트의 코드 예시이다.
// Before
import { render } from 'react-dom';
const container = document.getElementById('app');
render(<App tab="home" />, container);
// After
import { createRoot } from 'react-dom/client';
const container = document.getElementById('app');
const root = createRoot(container); // createRoot(container!) if you use TypeScript
root.render(<App tab="home" />);
기존의 방식과 달리 creatRoot를 이용해 root를 생성하고 렌더링하는 방식이었다.
그리하여 아래와 같이 코드를 변경하였다.
기존 코드
// 기존 React v17 코드
import React from 'react';
import ReactDom from 'react-dom';
import {BrowserRouter} from 'react-router-dom';
ReactDom.render(<BrowserRouter>
<React.StrictMode>
<App/>
</React.StrictMode>
</BrowserRouter>, document.querySelector('#root'));
변경한 코드
// react v18에 맞게 변경한 코드
import React from 'react';
import { createRoot } from 'react-dom/client';
import {BrowserRouter} from 'react-router-dom';
import App from '../src/app';
const container = document.getElementById('root');
const root = createRoot(container);
root.render(<BrowserRouter>
<React.StrictMode>
<App/>
</React.StrictMode>
</BrowserRouter>)
변경하면 더 이상 위와 같은 Warning은 뜨지 않는다 😆
도움이 되셨다면 ♡ 공감
'프론트엔드 > React' 카테고리의 다른 글
React로 Lottie 애니메이션 구현하기 (0) | 2021.12.22 |
---|