Reactjs 如何在Typescript中获得匹配的类型?

Reactjs 如何在Typescript中获得匹配的类型?,reactjs,typescript,react-router-dom,Reactjs,Typescript,React Router Dom,我有一个组件,我必须在其中使用match.params,但当我尝试它时,我有一个错误。在我的情况下,如何获取匹配参数 组成部分 type MainInfoProps = { mainInfo: IUser, boxShadow?: number, }; export const UserCard: React.FC<MainInfoProps> = (props) => { return() } 类型MainInfoProps={ 主要信息:IUser,

我有一个组件,我必须在其中使用match.params,但当我尝试它时,我有一个错误。在我的情况下,如何获取匹配参数

组成部分


type MainInfoProps = {
  mainInfo: IUser,
  boxShadow?: number,
};

export const UserCard: React.FC<MainInfoProps> = (props) => {
  return()
}


类型MainInfoProps={
主要信息:IUser,
boxShadow?:数字,
};
导出常量用户卡:React.FC=(道具)=>{
返回()
}
错误

类型“PropsWithChildren”上不存在属性“match”

您应该使用
RouteComponentProps
,它是一种接受params对象类型的泛型类型

import { RouteComponentProps } from 'react-router-dom';

type MainInfoProps = {
   mainInfo: IUser;
   boxShadow?: number;
} & RouteComponentProps<{ paramOne: string; paramTwo: string }>;

您的问题中没有代码试图使用属性
match
。请用演示该问题的示例更新您的问题。基本上,您显示的道具类型没有
match
属性,因此,如果您试图在
props
上使用
match
,您会收到投诉也就不足为奇了,但是如果没有更多信息,就不可能真正提供帮助。在这种情况下,无论我在哪里使用此组件,都必须传输paramOne和paramtoo。也许还有其他方法?@Volodumr然后将其设置为可选,以便在您不想传递任何参数的情况下,typescript不会抱怨。即使我这样做了RouteComponentProps,我也有错误,必须传输something@Volodumr向我显示错误将是一个很好的开始类型{mainfo:any;boxShadow:number;}“”缺少类型“RouteComponentProps”中的以下属性:历史记录、位置、匹配TS2739
import { RouteComponentProps } from 'react-router-dom';

type MainInfoProps = {
   mainInfo: IUser;
   boxShadow?: number;
} & RouteComponentProps<{ paramOne: string; paramTwo: string }>;
props.match.params.paramOne;