Tengo problemas con la ruta de laravel, estoy creando múltiples proyectos de reacción que usan react-router-dom y quiero que estén separados en lugar de construir un proyecto
A continuación se muestra la configuración del paquete web para generar 2 carpetas separadas del proyecto de reacción:
mix.webpackConfig({ resolve: { alias: { '@': path.resolve(__dirname, 'resources', 'js'), '@admin': path.resolve(__dirname, 'resources', 'js', 'Application', 'Admin'), '~': path.resolve(__dirname, 'resources', 'sass'), // '@components': '/resources/assets/js/components' } } }) .react('resources/js/Application/Admin/app.js', 'public/js/Admin') .react('resources/js/Application/LandingPage/app.js', 'public/js/LandingPage').sourceMaps() .sass('resources/sass/app.scss', 'public/css');En la ruta de laravel, esta es mi configuración:
Route::get('/', function () { return view('lading-page'); }); Route::get('/admin', function () { return view('admin'); });Raíz.jsx
import * as React from 'react'; import ReactDOM from 'react-dom'; import Signin from './Pages/Signin' import Auth from './Pages/Auth/App' import Dashboard from './Pages/Auth/Dashboard' import Users from './Pages/Auth/Users' import PageNotFound from './Pages/PageNotFound' import { BrowserRouter, Routes, Route } from "react-router-dom"; function App() { return ( <BrowserRouter> <Routes> <Route path="/" element={<Signin />} /> <Route path="/dashboard" element={<Auth />}> <Route path="" element={<Dashboard />} /> <Route path="users" element={<Users />} /> </Route> <Route path="*" element={<PageNotFound />} /> </Routes> </BrowserRouter > ); } ReactDOM.render(<App />, document.querySelector('#app')); La página de destino funciona bien, pero cuando uso la ruta de admin dice 404 not found , que es el controlador 404 react-router-dom no el controlador de ruta Laravel
Mi pregunta es, para solucionar este problema? ¿Hay alguna forma o Laravel React admite el enrutamiento Laravel de renderizar una vista específica?
Acabo de resolver el problema: en mi caso, estaba usando BrowserRouter en la ruta de reacción, este método definitivamente editará la URL al enrutar y este método es el mismo que la ruta laravel, ese es el conflicto. Para solucionar esto, debe usar HashRouter , que agregará #/ a las rutas y no causará conflictos en la ruta de Laravel.