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

React点击Link后页面不自动加载 需手动刷新该如何解决

问题原因

你当前的问题核心是嵌套了多层<BrowserRouter>:

  • 你在index.js里已经给整个App套了一层<BrowserRouter>作为全局路由根节点
  • 又在MainNavigation导航组件里额外套了一层独立的<BrowserRouter>
    两层路由上下文互相独立,导航栏的Link触发的是内层路由的跳转,外层App里的Routes监听不到内层的路由变化,所以页面不会自动渲染匹配的组件,只有刷新时全局走外层路由才能正常加载。
解决步骤
  1. 修改MainNavigation组件,删除多余的<BrowserRouter>包裹,修改后代码如下:
function MainNavigation() {
  return (
    <header>
      <div>React Meets Up</div>
      <nav>
        <ul>
          <li>
            <Link to="/">AllMeetUp</Link>
          </li>
          <li>
            <Link to="/newmeetup">New MeetUp</Link>
          </li>
          <li>
            <Link to="/favorites">Favourite Page</Link>
          </li>
        </ul>
      </nav>
    </header>
  );
}
export default MainNavigation;
  1. 可选优化:把App.js里没用的BrowserRouter导入语句删掉,避免后续误写嵌套:
    将原来的import { BrowserRouter, Route } from "react-router-dom";修改为import { Route } from "react-router-dom";即可。

修改完成后重新启动项目,Link点击就能正常跳转不需要手动刷新了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:15:02