首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TS2786‘组件’不能用作JSX组件

TS2786‘组件’不能用作JSX组件
EN

Stack Overflow用户
提问于 2022-04-11 16:55:38
回答 8查看 25.1K关注 0票数 15

我有一个不编译的React类型记录应用程序。许多组件都有一个类型为返回React.ReactNodeReact.ReactElement的呈现方法。在编译时,报告了许多与以下类似的错误:

代码语言:javascript
复制
TS2786: 'MessagesWidget' cannot be used as a JSX component.
 Its instance type 'MessagesWidget' is not a valid JSX element.
 The types returned by 'render()' are incompatible between these types.
 Type 'React.ReactNode' is not assignable to type 'import("/home/node/app/node_modules/@types/react-calendar/node_modules/@types/react/index").ReactNode'.

为什么编译器期望由与ReactNode捆绑的类型定义的react-calendar?我确实将@types/react-dom安装为一个dev依赖项。

其他可能相关的信息:

  1. 这个项目直到几天前才开始编译,编译开始失败时没有发生任何代码更改,所以我怀疑包更新触发了这一点(即使这不是根本原因)。编译开始失败时在时间窗口中更新的唯一依赖项是@types/react@types/react-dom。然而,将这些包滚回旧版本并没有解决这个问题。
  2. 更改组件呈现方法以返回JSX.Element将删除编译器错误,但是应用程序中存在第三方组件,这是不可能的。
EN

Stack Overflow用户

发布于 2022-09-27 11:35:08

只需在package.json中添加re和re dom的最新版本,然后在下面的命令中运行,以便重新安装react和re dom。

在这里,当发布这个答案时,最新版本的是18。

步骤-

  1. 删除您的产品的package-lock.json文件
  2. 打开项目的package.json
  3. 替换版本

“@type/dom”:"^18",“@type/dom dom”:"^18“

4.运行命令

npm安装

好了。它解决了我的问题。

票数 0
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71831601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档