React 传参 报错does not exist on type ‘Location<unknown>‘. TS2339和‘PropsWithChildren<Props>‘. TS2339

本文解决了React中使用history.push进行页面跳转时传递参数所遇到的TS2339错误,并提供了两种解决方案:一是通过将props.location转换为any类型来获取参数;二是确保接收参数的组件Props继承RouteComponentProps。

1、Property ‘param1’ does not exist on type ‘Location’. TS2339

原因:react识别不了Location
跳转代码

let path = {
    param1: data,
    pathname: Route_A001P005,
};

this.history.push(path);

获取参数

useEffect(() => {
   console.log("param1:",props.location.param1)
});

单纯输出props有location和param1参数名称和值,但是编译就是报错。

解决办法

先把props.location赋值给一个类型为 any 的常量,然后再用 该常量获取参数

const a = props.location as any;
console.log("param1 :",a.param1)

2、Property ‘location’ does not exist on type ‘PropsWithChildren’. TS2339

报PropsWithChildren错误的原因是获取参数页面的Props 没有继承RouteComponentProps

解决办法

interface Props extends RouteComponentProps<any> {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值