Reactjs 有条件返回react路由器路由的TypeScript函数
我有一个TypeScript函数,当调用该函数时,根据提供的参数有条件地返回一个Reactjs 有条件返回react路由器路由的TypeScript函数,reactjs,typescript,react-router,react-router-dom,Reactjs,Typescript,React Router,React Router Dom,我有一个TypeScript函数,当调用该函数时,根据提供的参数有条件地返回一个react router domroute。但是,当我声明(Route | null)的返回类型时,我得到以下错误: TS2740:类型“Element”缺少类型中的以下属性 “路由”:上下文、设置状态、强制更新、渲染和2 更多 我是否没有正确声明此函数的返回类型,如果是,应该是什么?我还尝试了(Route | null),但这似乎并没有解决问题。谢谢 import * as React from 'react';
react router dom
route。但是,当我声明(Route | null)
的返回类型时,我得到以下错误:
TS2740:类型“Element”缺少类型中的以下属性
“路由”:上下文、设置状态、强制更新、渲染和2
更多
我是否没有正确声明此函数的返回类型,如果是,应该是什么?我还尝试了(Route | null)
,但这似乎并没有解决问题。谢谢
import * as React from 'react';
import { Route } from 'react-router-dom';
const SampleComponent: React.FC = () => <h1>hello world</h1>;
export const getRoute = (returnRoute: boolean): (Route | null) => {
if (returnRoute) {
return (
<Route
component={SampleComponent}
exact
path="/samplePath"
/>
);
}
return null;
};
import*as React from'React';
从'react router dom'导入{Route};
const SampleComponent:React.FC=()=>hello world;
export const getRoute=(returnRoute:boolean):(Route | null)=>{
if(返回路线){
返回(
);
}
返回null;
};
如果您查看
路线的签名
export class Route<T extends RouteProps = RouteProps> extends React.Component<T, any> { }
因此,为了回答您的问题,如果查看
路由的签名,可以将(Route | null)
替换为React.ReactNode
export class Route<T extends RouteProps = RouteProps> extends React.Component<T, any> { }
因此,要回答您的问题,您可以将(Route | null)
替换为React.ReactNode