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

React-Route仅渲染首页,其余路由页面无法加载问题求助

问题解决方案

1. 移除无效的exact属性

React Router v6 已经彻底移除了exact属性,Routes组件会自动按最佳匹配规则渲染路由,保留exact不仅没用,还可能干扰匹配逻辑。修改后的路由代码如下:

const App = () => {
 
  return (
    <>
      <Routes>
        <Route index element={<Home />} /> {/* index 等价于 path="/" 的精确匹配 */}
        <Route path="/Cardapio" element={<Cardapio />} />
        <Route path="/Knowmore" element={<Knowmore />} />
        <Route path="/About" element={<About />} />
        <Route path="*" element={<p>Página não encontrada</p>} />
      </Routes>   
    </>
  );
};
export default App;

2. 确认用BrowserRouter包裹App组件

路由功能必须在BrowserRouter(或HashRouter)的上下文里才能生效,检查项目入口文件(比如index.js)是否有如下配置:

import { BrowserRouter } from 'react-router-dom';
import App from './App';

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

没有这层包裹的话,路由系统根本无法工作,只会默认渲染首页组件。

3. 检查组件导入是否正确

确保所有页面组件(Home、Cardapio、Knowmore、About)都已正确导入到App.js中,比如:

import Home from './components/Home';
import Cardapio from './components/Cardapio';
import Knowmore from './components/Knowmore';
import About from './components/About';

导入路径错误或组件未正确导出,都会导致对应路由页面无法渲染。

4. 用Link组件跳转页面

必须使用React Router提供的Link组件跳转,不能直接用<a>标签(会触发页面硬刷新,破坏SPA特性):

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

// 正确跳转写法
<Link to="/About">About</Link>

如果用<a href="/About">,浏览器会硬刷新页面,若服务器没配置SPA fallback路由,就会出现页面无法加载的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:50:26