运行时
npm test
我收到以下错误:
Cannot find module 'react-dom/client' from 'node_modules/@testing-library/react/dist/pure.js'
Required stack:
node_modules/@testing-library/react/dist/pure.js
node_modules/@testing-library/react/dist/index.js
所有必需的软件包似乎都已安装。我重新安装了
react-dom
,但没有帮助。下面提供了我的测试文件中使用的导入:
import React from "react";
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import '@testing-library/jest-dom';
另外提供我的
package.json
:
{
"name": "fe",
"version": "0.1.0",
"private": true,
"dependencies": {
"@fontsource/roboto": "^4.5.3",
"@material-ui/core": "^4.12.3",
"@material-ui/icons": "^4.11.2",
"@mui/icons-material": "^5.5.0",
"@mui/material": "5.5.3",
"@mui/styles": "^5.5.1",
"@reduxjs/toolkit": "^1.8.0",
"@testing-library/jest-dom": "5.16.3",
"@testing-library/react": "13.0.0",
"@testing-library/user-event": "14.0.4",
"axios": "^0.26.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-hook-form": "^7.28.1",
"react-redux": "^7.2.6",
"react-router-dom": "^6.2.2",
"react-scripts": "5.0.0",
"redux": "^4.1.2",
"styled-components": "^5.3.5",
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@types/jest": "^27.4.0",
"@types/node": "^16.11.25",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.11",
"@types/styled-components": "^5.1.24",
"@typescript-eslint/eslint-plugin": "^5.12.0",
"@typescript-eslint/parser": "^5.12.0",
"eslint": "^8.9.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.4.0",
"eslint-import-resolver-typescript": "^2.5.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"prettier": "2.5.1",
"typescript": "^4.5.5"
}
}
我认为这是因为你的@testing-library/react使用了较新的版本,只需使用12.1.2版本进行测试
根据 @testing-library/react 发行说明,
version 13
(及以上)已放弃对 React 17
及以下内容的支持。因此,将此库与
React <= 17
一起使用将导致此错误(或其他错误)。您可以降级到 13 以下的任何版本
@testing-library/react
来修复它。 在撰写本文时,最新的是
12.1.5
,它可以与
React 17
配合使用。另一个选择是将 React 升级到 18 及更高版本。
看起来连接react-redux Provider的语法已经改变了:
https://react-redux.js.org/introduction/getting-started (在代码块中提到“// As of React 18”)。
为了使其正常工作,我必须确保 React 和 React-dom 使用的是 18 或更高版本,并更新了所有其他客户端 npm 包。许多需要更新:
npm update package-name --legacy-peer-deps
我花了几个小时才弄清楚这一点。希望它对某人有帮助!
npm update --force
npm install --save-dev @types/react-dom@latest @types/react@latest
来安装最新的 types/react-dom 和 types/react
[电子邮件受保护]对我有用,谢谢