问题描述
升级到版本4后出现typeScript错误 在react-router-dom中的useParams()中使用
"typescript": "^4.0.2"
import { useParams } from 'react-router-dom';
const { sumParams } = useParams();
Property 'sumParams' does not exist on type '{}'.
解决方法
useParams
是通用的。您需要通过指定泛型的值来告诉Typescript您正在使用哪些参数
有几种解决方法
这是我最喜欢的方式
const { sumParams } = useParams<{ sumParams: string }>();
但是还有其他几种方法(:
OR
interface ParamTypes {
sumParams: string;
}
然后在您的组件中
const { sumParams } = useParams<ParamTypes>();
OR
添加任何没有接口的类型
const { sumParams } : any = useParams();
注意:这样一来,您将无法将其设置为字符串
OR
keemor的更多选项:
const { sumParams } = useParams() as {
sumParams: string;
}
,
另一个选择是:
const { sumParams } = useParams() as {
sumParams: string;
}
,
要使其像以前一样起作用,只需添加“:any”
const { sumParams } : any = useParams();
,
type ParamTypes {
sumParams: string;
}
const { sumParams } = useParams<ParamTypes>()
这将是一个干净的方法