package.json
文件(依赖项、脚本){
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"@types/react-router-dom": "^5.1.7",
"firebase": "^8.2.7",
"form-group": "^3.0.8",
"react": "^15.3.0",
"react-dom": "^17.0.1",
"react-router": "^5.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.2",
"react-tinder-card": "^1.3.1",
"reactstrap": "^8.8.1",
"typescript": "^4.1.2",
"web-vitals": "^1.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
}
我知道已经过去一个月了,但如果您仍然需要它或其他人有同样的问题,我收到了相同的错误消息,并且能够使用这篇文章上提供的解决方案解决它。
显然这与“react”和“react-dom”版本不一样有关。并在终端上运行以下命令修复它:
npm rm react react-dom && npm i -s react react-dom
我遇到了同样的问题,以下是可能导致此问题的不同情况:
React和React-dom依赖项在'主项目'中没有相同的版本。这里的 '主项目' 意味着您的项目结构不使用 monorepo(Nx、Turborepo 等),并且所有项目文件和文件夹(应用程序、共享、组件、实用程序等) )位于一个主文件夹中。 请注意,在这种情况下,您的项目只有一个 “node_modules” 文件夹。
React和React-dom依赖项在'apps'文件夹和“packages(共享)”文件夹中没有相同的版本。在这种情况下,您的项目结构使用 monorepo(Nx、Turborepo 等),并且工作区中有 2 个主文件夹(apps 和 packages),每个文件夹都有自己的 package.json 文件和 “node_modules” 目录。 “Apps” 文件夹包含应用程序的基本代码和配置,“packages” 包含可在所有项目之间共享的所有共享组件、实用程序等。 因此,例如,如果您在 “apps” 和 “packages” 中都有 “react” 和 “react-dom” 依赖项,那么它们在两个地方都必须具有相同的版本。
React和React-dom依赖项在您的应用程序(应用程序或包)以及您已在应用程序中安装的3rd-party库中没有相同的版本。为了澄清起见,假设您已经安装了 Tamagui(用于 Next.js、React 等的 UI 工具包库),现在 Tamagui 将在未经您许可的情况下自行安装 React 依赖项到 Tamagui node_module 文件夹中。现在,如果 Tamagui node_module 文件夹中的 React 版本与您自己应用程序中的 React 版本不同,那么当您运行项目时就会显示此问题