我正在尝试将 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 元素类型“组件”没有任何构造或调用签名。[2604]
我已经阅读了很多关于这个问题的其他线程,但它们似乎都处理了针对特定组件实现出现的这个错误。我无法更改有问题的组件或以不同方式导入它(就像公认的答案通常建议的那样),因为它可以是任何组件。
我使用的是 TypeScript 3.1.6、Babel Core 7.1 和 React 16.6.3。