我正在尝试学习React 18中的一些新特性,例如SuspenseList和新的useId钩子,但我似乎一遍又一遍地遇到同样的错误:
Module '"react"' has no exported member 'SuspenseList'. TS2305这就是我的package.json的样子:
"dependencies": {
"bootstrap": "^5.1.1",
"history": "^5.0.1",
"react": "^18.0.0-rc.0",
"react-dom": "^18.0.0-rc.0",
"react-error-boundary": "^3.1.3",
"react-router-dom": "^6.0.0-beta.5",
"swr": "^1.0.1",
"web-vitals": "^1.1.2"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"@types/jest": "^26.0.24",
"@types/node": "^12.20.27",
"@types/react": "^17.0.37",
"@types/react-dom": "^17.0.9",
"prettier": "^2.4.1",
"react-scripts": "4.0.3",
"typescript": "^4.4.3"
},我现在不知道该怎么做,因为我已经安装了React 18的RC版本,这应该是工作组GitHub讨论板上的最新版本。
发布于 2022-05-02 23:15:25
如果仍有任何人面临此问题,请安装最新版本的@types/ npm 附加的npm链接中的更多信息 npm i@type/npm
发布于 2021-12-15 11:02:33
您从TypeScript编译器获得了该错误,因为即使您已经安装了react@next,仍然在使用@types/react@17。SuspenseList确实存在于实现中,但编译器不知道这一点。
虽然没有类似的@types/react@next安装,但@types/react确实包括:
next.d.ts (绝对在v18中的类型);以及experimental.d.ts (目前处于实验性构建中的类型)。后者的源代码 (因为SuspenseList和整个并发模式API仍然是实验性的)告诉您如何在项目中使用这些类型:
这些类型适用于存在于React的
experimental构建中,但还没有出现在稳定的构建中的东西。 一旦它们被提升到稳定状态,它们就可以被移动到主索引文件中。 要在实际项目中加载此处声明的类型,有三种方法。如果您的tsconfig.json已经在"compilerOptions"部分中有一个"types"数组,那么最简单的方法就是向"types"数组中添加"react/experimental"。 或者,可以从TypeScript文件中使用特定的导入语法。这个模块实际上并不存在,这就是为什么{}很重要的原因: 从“react/实验性”导入{} 还可以通过三重斜杠引用将其包括在内: /// 导入或引用只需要在项目中的任何地方出现一次。
https://stackoverflow.com/questions/70362143
复制相似问题