반응형
✔️ 필요성
React 18은 더이상 react-dom의 render를 사용하지 않고 createRoot를 사용하기를 권장한다. React 18로 업그레이드 했는데도 ReactDOM.render를 사용하고 있으면 콘솔창에 warning이 등장한다
✔️ 문제 확인
ga-4-react 라이브러리를 함께 사용할 때 createRoot를 어떻게 적용했는지 기록해둔다
이게 기존 코드
import ReactDOM from 'react-dom'
import GA4React from 'ga-4-react'
const ga4react = new GA4React(process.env.REACT_APP_GA_CODE)
;(async (_) => {
await ga4react.initialize()
ReactDOM.render(
<React.StrictMode>
<RecoilRoot>
<ErrorBoundary>
<Suspense fallback={<SplashPage />}>
<App />
</Suspense>
</ErrorBoundary>
</RecoilRoot>
</React.StrictMode>,
document.getElementById('root'),
)
}
이게 변경된 코드
import { createRoot } from 'react-dom/client'
import GA4React from 'ga-4-react'
const ga4react = new GA4React(process.env.REACT_APP_GA_CODE ?? '')
;(async (_) => {
await ga4react.initialize()
const container = document.getElementById('root')
const root = createRoot(container as Element)
root.render(
<React.StrictMode>
<RecoilRoot>
<ErrorBoundary>
<Suspense fallback={<SplashPage />}>
<App />
</Suspense>
</ErrorBoundary>
</RecoilRoot>
</React.StrictMode>,
)
}
반응형
'프론트엔드 웹 > React' 카테고리의 다른 글
[에러해결] Module not found: Can't resolve 'chart.js' (0) | 2022.04.27 |
---|---|
react-router-dom v6에서 RouteComponentProps 안 쓸 때 (0) | 2022.04.19 |
url Query로 컴포넌트 state 관리하기 (0) | 2022.04.01 |
Table Component Example (0) | 2022.03.24 |
AutoComplete Search Example (0) | 2022.03.24 |