How to downgrade from react 18 to 17.0.2

Ifeanyi Chima - Apr 17 '22 - - Dev Community

I might not be the only one who is really scared of change in technology causing a break in my code, but you don't have to fear anymore. with the new react 18 deployed, I will show you how to downgrade to react 17.0.2 with ease, so you can have enough time to prepare for the upgrade.

BMC

1. Create React App

  • create a folder and name it react-downgrade-2022 or whatever you want.

  • Open the terminal and run create-react-app



npx create-react-app .


Enter fullscreen mode Exit fullscreen mode

2. Uninstall react and react-dom

when you have created a react app it will come with react 18 and react-dom 18, but this is not what we want since we are trying to downgrade to react 17.0.2 and react-dom 17.0.2



{
  "name": "react-downgrade-2022",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.4",
    "@testing-library/react": "^13.0.1",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.0.0", // <===
    "react-dom": "^18.0.0", // <===
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}



Enter fullscreen mode Exit fullscreen mode

we would have to uninstall react 18 and react-dom 18, now run
npm uninstall react react-dom



npm uninstall react react-dom


Enter fullscreen mode Exit fullscreen mode

this is done so that we can get rid of react 18 and react-dom 18, remember, we are trying to downgrade to react 17 and react-dom 17.

Image description

3 Install react 17 and react-dom 17

now to get what we really want which is react 17 and react-dom 17 once again, run npm install react@17.0.2 react-dom@17.0.2



npm install react@17.0.2 react-dom@17.0.2


Enter fullscreen mode Exit fullscreen mode

React will yell at you with some deprecated warning signs, ignore whatever warning signs that are shown.

4 Change index.js

Remember, because we had already installed react 18, index.js will come with some default react 18 settings, which we would have to change to match that of react 17.0.2

navigate to your index.js file in the src directory.




// react 18

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();


Enter fullscreen mode Exit fullscreen mode

now copy and paste the below code to your index.js file




// react 17.0.2

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(
  <React.StrictMode>
    <App/>
  </React.StrictMode>,
  document.getElementById('root')
);


Enter fullscreen mode Exit fullscreen mode

5 finish

now, we have successfully downgraded from react 18 to react 17.0.2
run npm start



npm start


Enter fullscreen mode Exit fullscreen mode

Thank you, Please follow me

linkedin.com/in/ifeanyi-thankgod-chima/
https://twitter.com/ifeanyiTchima

Buy Me A Coffee

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player