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

React Router链接点击无响应,路由无法切换问题求助

解决React Router v5路由无法切换的问题

我看了你的代码,发现两个核心问题导致点击Link后路由没切换:

问题1:根路由未添加exact属性

在react-router-dom v5中,<Switch>组件会按从上到下的顺序匹配路由,只要路径的开头匹配就会渲染对应的组件。你的根路由path="/"没有加exact,所以所有路由(包括/page2、/page3)都会匹配到这个根路由,始终渲染Page1,后面的路由根本没机会生效。

问题2:Page3的路由路径写错了

你给Page3设置的path是/page2,和Page2的路径重复了,就算根路由的问题解决了,点击/page3的链接也找不到对应的路由组件。


修改后的App.js代码

import React from "react";
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import Page1 from './pages/Page1';
import Page2 from './pages/Page2';
import Page3 from './pages/Page3';
import "./style.css";

export default function App() {
  return (
    <BrowserRouter>
      <Switch>
        {/* 添加exact属性,确保只有路径完全匹配/时才渲染Page1 */}
        <Route exact path="/" component={Page1 } />
        <Route path="/page2" component={Page2 } />
        {/* 修正Page3的路由路径为/page3 */}
        <Route path="/page3" component={Page3 } />
      </Switch>
    </BrowserRouter>
  );
}

补充说明

  • exact属性的作用是强制路由进行完全匹配,只有当URL和path完全一致时才会渲染组件。
  • <Switch>组件只会渲染第一个匹配到的路由,所以一定要把更具体的路由(比如/page2、/page3)放在根路由后面,避免被覆盖。

这样修改后,点击Link就能正常切换路由了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:07:57