类型错误:无法读取未定义的属性“ReactCurrentDispatcher”

问题描述 投票:0回答:2
  1. 当我尝试升级 React 版本时,Windows 出现错误。
  2. 该项目是react,typescript和firebase进行身份验证。
  3. 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"
  }
}
reactjs typescript firebase authentication
2个回答
1
投票

我知道已经过去一个月了,但如果您仍然需要它或其他人有同样的问题,我收到了相同的错误消息,并且能够使用这篇文章上提供的解决方案解决它。

显然这与“react”和“react-dom”版本不一样有关。并在终端上运行以下命令修复它:

npm rm react react-dom && npm i -s react react-dom


0
投票

我遇到了同样的问题,以下是可能导致此问题的不同情况:

  1. ReactReact-dom依赖项在'主项目'中没有相同的版本。这里的 '主项目' 意味着您的项目结构不使用 monorepo(Nx、Turborepo 等),并且所有项目文件和文件夹(应用程序、共享、组件、实用程序等) )位于一个主文件夹中。 请注意,在这种情况下,您的项目只有一个 “node_modules” 文件夹

  2. ReactReact-dom依赖项在'apps'文件夹和“packages(共享)”文件夹中没有相同的版本。在这种情况下,您的项目结构使用 monorepo(Nx、Turborepo 等),并且工作区中有 2 个主文件夹(apps 和 packages),每个文件夹都有自己的 package.json 文件和 “node_modules” 目录。 “Apps” 文件夹包含应用程序的基本代码和配置,“packages” 包含可在所有项目之间共享的所有共享组件、实用程序等。 因此,例如,如果您在 “apps”“packages” 中都有 “react”“react-dom” 依赖项,那么它们在两个地方都必须具有相同的版本。

  3. ReactReact-dom依赖项在您的应用程序(应用程序或包)以及您已在应用程序中安装的3rd-party库中没有相同的版本。为了澄清起见,假设您已经安装了 Tamagui(用于 Next.js、React 等的 UI 工具包库),现在 Tamagui 将在未经您许可的情况下自行安装 React 依赖项到 Tamagui node_module 文件夹中。现在,如果 Tamagui node_module 文件夹中的 React 版本与您自己应用程序中的 React 版本不同,那么当您运行项目时就会显示此问题

© www.soinside.com 2019 - 2024. All rights reserved.