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

React Router问题:点击游戏图片无法跳转至对应组件

React Router Link点击无响应排查方案(针对VideoGame Museum项目)

以下是几个常见的排查方向及对应解决方法:

  • 确认Link组件导入正确
    必须从react-router-dom导入Link,别写错包名或组件名:

    import { Link } from 'react-router-dom';
    
  • 检查BrowserRouter的包裹范围
    所有用到Link的组件、路由配置都得放在<BrowserRouter>内部,否则路由系统无法识别点击事件:

    import { BrowserRouter, Routes, Route } from 'react-router-dom';
    import GameList from './GameList';
    import ZeldaGame from './games/ZeldaGame';
    
    function App() {
      return (
        <BrowserRouter>
          <GameList /> {/* 包含Link的列表组件在这里面 */}
          <Routes>
            <Route path="/" element={<GameList />} />
            <Route path="/zelda" element={<ZeldaGame />} />
            {/* 其他游戏的路由配置 */}
          </Routes>
        </BrowserRouter>
      );
    }
    
  • 核对Link的to属性与路由路径
    to的值必须和对应Route的path完全匹配,注意大小写、斜杠这些细节:

    // 路由配置
    <Route path="/mario" element={<MarioGame />} />
    
    // 正确的Link写法
    <Link to="/mario">
      <img src="/mario.png" alt="超级马里奥" />
    </Link>
    

    如果是动态路由(比如path="/game/:id"),to要写成/game/1这种完整路径。

  • 确认Routes和Route配置符合版本要求
    React Router v6里已经用Routes替代了旧版的Switch,而且Route必须用element属性传入组件,不能再用component:

    // v6正确写法
    <Routes>
      <Route path="/final-fantasy" element={<FinalFantasyGame />} />
    </Routes>
    

    混用旧语法会导致路由不生效,看起来像是Link没反应。

  • 排查图片的点击事件干扰
    如果图片上绑定了onClick事件,且里面调用了e.preventDefault()或e.stopPropagation(),会阻断Link的默认跳转行为,要移除这类代码:

    // 错误示例:别这么写
    <Link to="/zelda">
      <img src="/zelda.jpg" alt="塞尔达" onClick={(e) => e.stopPropagation()} />
    </Link>
    

如果以上排查都没问题,建议贴出你的路由配置代码、游戏列表里的Link组件代码,方便更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:00:12