TypeScript 3:JSX元素类型“ Component”没有任何构造或调用签名[2604]

【字号: 日期:2024-04-20浏览:10作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决TypeScript 3:JSX元素类型“ Component”没有任何构造或调用签名[2604]?

我已经遇到过几次了。试试这些:

输入您PrivateRoute的React.SFC<Props>输入您的传入组件为 React.ReactType

关于React类型的最终真理来自于文档

解决方法

我试图将类型为React.Component(或React.FunctionComponent)的变量传递给Route,如下所示:

import React from ’react’;import { Route } from ’react-router-dom’;type PrivateRouteProps = { component: React.Component | React.FunctionComponent; isAuthenticated: boolean; login: (...args: any[]) => any; path: string;};const PrivateRoute: React.FunctionComponent<PrivateRouteProps> = ({ component: Component,isAuthenticated,login,path,...rest}) => { return ( <Route path={path} {...rest} render={props => {if (isAuthenticated) { return <Component {...props} />;} else { login(); return null;} }} /> );};

但我收到此错误:

JSX元素类型“ Component”没有任何构造或调用签名。[2604]

我已经阅读了许多有关此问题的其他主题,但是它们似乎都处理了针对特定组件实现的错误。我不能更改有问题的组件或以不同的方式导入它(就像通常接受的答案一样),因为它可以是任何 组件。

我正在使用TypeScript 3.1.6,Babel Core 7.1和React 16.6.3。

相关文章: