Laravel+React项目根路径下组件无法显示问题求助
排查Laravel+React路由根路径组件不渲染问题
以下是几个关键排查点和修复方案:
1. React Router版本不兼容(最可能原因)
你当前的代码写法是React Router v5及之前的语法,但如果安装的是v6版本,这种写法会失效——v6要求Route必须嵌套在Routes组件内,且不再支持component属性,改用element传入组件实例,同时exact属性已被移除(v6默认精确匹配路径)。
修改后的app.js代码:
import './bootstrap'; import React from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import Index from './components/Index'; if (document.getElementById('app')) { const app = ReactDOM.createRoot(document.getElementById("app")); app.render( <React.StrictMode> <Router> <Routes> <Route path="/" element={<Index />} /> </Routes> </Router> </React.StrictMode> ) }
如果确实需要使用v5语法,需要回退版本:
npm uninstall react-router-dom npm install react-router-dom@5
2. Blade模板中JS文件路径错误
Welcome.blade.php里的脚本路径用了相对路径./js/app.js,在Laravel中应该使用asset()助手生成正确的资源URL,否则可能因路由层级导致找不到文件:
<script src="{{ asset('js/app.js') }}"></script>
3. Index组件导出方式不匹配
检查Index.jsx(或Index.js)的导出是否为默认导出:
// 正确的默认导出 export default function Index() { return <div>Index组件内容</div>; }
如果是命名导出,需要修改导入语句:
import { Index } from './components/Index';
内容的提问来源于stack exchange,提问作者techunsavvy
相关产品推荐
相关产品推荐

