You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React TS项目使用useParams获取URL参数报TS2339错误如何解决

修复方案

1. 为useParams指定泛型类型解决类型报错

该报错的原因是TypeScript默认无法识别useParams返回对象中存在ids属性,你需要主动为其传入路由参数类型定义:

// 定义当前页面的路由参数类型
type TicketProfileParams = {
  ids: string;
};

export default function TicketProfile(props: any) {
    // 给useParams传入泛型指定返回值类型
    let { ids } = useParams<TicketProfileParams>();
    
    const [ticket, setTicket] = useState<TicketDTO[]>([]);

    // 后续代码保持不变

2. 修复路由跳转的参数拼接错误

你当前的跳转代码会导致取到的ids值携带多余前缀:

// 原写法拿到的ids值为 "ids=xxx",不符合预期
history.push(`/ticket-profile/ids=${id}`)

调整为如下写法即可拿到纯id值:

history.push(`/ticket-profile/${id}`)

3. 补全useEffect依赖项

你当前useEffect的依赖数组为空,若页面参数ids发生变更时不会重新触发数据请求,建议调整为:

useEffect(() => {
    // 增加非空判断避免无效请求
    if (ids) getSingleTicket();    
}, [ids]);

内容的提问来源于stack exchange,提问作者Peter Penzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:39:04