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

使用useParams()从路由/:id/prices获取ID时返回undefined的解决方法

解决React Router中useParams获取id为undefined的问题
  • 确认组件与路由的对应关系
    你的路由中使用的是<PricesHistory />组件,但给出的组件代码是const Component = () => {...},要确保这个Component就是PricesHistory,或者在PricesHistory组件内部正确调用useParams。组件不对应会直接导致无法获取路由参数。

  • 检查React Router的导入和版本
    必须从react-router-dom正确导入useParams:

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

    你的路由结构是React Router v6的写法(用<Routes>包裹<Route>),要保证项目安装的是v6版本,版本不匹配会引发参数获取失败。

  • 替换原生a标签为React Router的Link组件
    原生<a>标签会触发页面刷新,导致React Router的路由状态丢失,参数无法被正确捕获。改用<Link>组件跳转:

    import { Link } from 'react-router-dom';
    
    // 替换原有a标签
    <Link to={`/${id}/prices`}>
      查看历史记录 →
    </Link>
    
  • 验证跳转时的id值是否有效
    跳转前确认id变量有实际值,比如打印跳转时的id,避免因为id本身是undefined,导致URL变成/undefined/prices,这种情况下useParams拿到的id自然也是undefined。

内容的提问来源于stack exchange,提问作者Maryam Ghafarinia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:32:50