我可能不是唯一一个真正害怕技术变化导致我的代码中断的人,但你不必再害怕了。部署新的 react 18 后,我将向您展示如何轻松降级到 react 17.0.2,以便您有足够的时间为升级做准备。
1. 创建反应应用
-
创建一个文件夹并将其命名或任何您想要的名称。
react-downgrade-2022
-
打开终端并运行 create-react-app
npx create-react-app .
2.卸载react和react-dom
当你创建了一个 react 应用程序时,它会附带 react 18 和 react-dom 18,但这不是我们想要的,因为我们正在尝试降级到 react 17.0.2和 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"
]
}
}
我们必须卸载 react 18 和 react-dom 18,现在运行npm uninstall react react-dom
npm uninstall react react-dom
这样做是为了我们可以摆脱 react 18 和 react-dom 18,记住,我们正在尝试降级为 react 17 和 react-dom 17。
3 安装 react 17 和 react-dom 17
现在得到我们真正想要的,即再次 react 17 和 react-dom 17,运行 npm install react@17.0.2 react-dom@17.0.2
npm install react@17.0.2 react-dom@17.0.2
React 会用一些已弃用的警告标志对你大喊大叫,忽略任何显示的警告标志。
4 更改 index.js
请记住,因为我们已经安装了 react 18,所以会附带一些默认的 react 18 设置,我们必须更改这些设置以匹配 react 17.0.2 index.js
导航到目录中的文件。 index.js
src
// 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();
现在将以下代码复制并粘贴到您的文件中 index.js
// 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')
);
5 完成
现在,我们已经成功从 react 18 降级到 react 17.0.2
运行 npm start
npm start