首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义反应头盔不能用作JSX组件。

自定义反应头盔不能用作JSX组件。
EN

Stack Overflow用户
提问于 2022-09-01 09:52:31
回答 1查看 77关注 0票数 0

我用叉子叉了反作用头盔回购(https://github.com/nfl/react-helmet)。

所以我有我的自定义组件:

代码语言:javascript
复制
import { Helmet } from 'react-helmet-custom';

当我在类型记录文件中使用它时,我得到了以下错误:

代码语言:javascript
复制
ERROR in /home/xxxxx/Documents/xxxxx/website-xxxxx/src/pages/homepage/HomeHelmet.tsx
./src/pages/homepage/HomeHelmet.tsx 77:3-9
[tsl] ERROR in /home/xxxxx/Documents/xxxxx/website-xxxxx/src/pages/homepage/HomeHelmet.tsx(77,4)
      TS2786: 'Helmet' cannot be used as a JSX component.
  Its instance type 'HelmetWrapper' is not a valid JSX element.
    Type 'HelmetWrapper' is missing the following properties from type 'ElementClass': context, setState, forceUpdate, props, and 2 more.

我安装了这些类型:

代码语言:javascript
复制
npm install --save @types/react-helmet

问题是这些类型在我的自定义组件中是不可见的。所以我不能在打字记录文件中使用它。

我该怎么解决呢?

EN

回答 1

Stack Overflow用户

发布于 2022-09-02 14:05:58

我也经历过类似的问题,但在Azure静态Web应用程序构建管道中。从阅读this thread,似乎这是一个与反应18,打字稿和头盔有关的问题。

从引用的线程中,对我有用的解决方案是:

卸载@types/react-helmet

  • add文件helmet.d.ts,其内容为:declare module "react-helmet";

一旦我这样做,构建就成功完成了。

线程中的另一个解决方案,我不需要,但这将是我的最后一招,就是在{/* @ts-ignore */}的开始标记之前将<Helmet />添加到<Helmet />中。

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

https://stackoverflow.com/questions/73567388

复制
相关文章

相似问题

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