1. 程式人生 > 其它 >解決React專案關於升級React 18的報錯問題

解決React專案關於升級React 18的報錯問題

當我們使用React 18 版本構建專案時,通常我們執行專案的時候會在控制檯看到這樣的報錯資訊

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

雖然不會影響我們執行專案,但是對於強迫症的我們來說還是不能忍受的。我們在index.js檔案中修改下ReactDom就可以消除這個報錯:

 

1. 修改前index.js

 

import React from 'react';
import ReactDOM from 'react-dom';  // 未修改前的引入地址
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

// 未修改前的ReactDOM.render()方法
ReactDOM.render(
 <React.StrictMode>
   <App />
 </React.StrictMode>,
 document.getElementById('root')
);

reportWebVitals();

 

2. 修改index.js檔案

(1) 修改ReactDom的引入路徑為'react-dom/client'

(2) 修改render函式中ReactDom.render() 方法為

  ReactDOM.createRoot(document.getElementById('root')) .render(

    <React.StrictMode>

      <App />

    </React.StrictMode>

  );

修改後index.js

import React from 'react';
import ReactDOM from 
'react-dom/client'; // 修改後的引入路徑 import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; // 修改後的ReactDom方法 ReactDOM.createRoot(document.getElementById('root')) .render(   <React.StrictMode>       <App />   </React.StrictMode> ); reportWebVitals();