rwr*_*t94 4 html javascript css reactjs react-router
寻求有关重定向的一些帮助。下面是代码片段。
索引.js
const router = createBrowserRouter([
{
//set App as root element...
path: "/",
loader: () => {
},
element: <App/>,
errorElement: <ErrorPage/>,
//set routes for child elements...
children: [
{
path: "/home",
element: <Home/>
},
{
path: "/about",
element: <About/>,
errorElement: <ErrorPage/>
},
{
path: "/blog",
element: <Blog/>,
errorElement: <ErrorPage/>
},
{
path: "/services",
element: <Services/>,
errorElement: <ErrorPage/>
}
]
}
])
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<RouterProvider router={router} />
{/* <App /> */}
</React.StrictMode>
);
Run Code Online (Sandbox Code Playgroud)
应用程序.js
import React from "react";
import { BrowserRouter, Outlet, redirect, Route, Routes } from "react-router-dom";
import Navbar from "./components/Navbar";
import Home from "./views/Home";
function App() {
return (
<div className="App">
<Navbar/>
<Outlet/>
</div>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
我想做的就是当页面加载“./”作为根目录时,将页面从“localhost:3000/”重定向到“localhost:3000/home”,这样我就可以渲染应用程序主页。在我使用插座的地方,我希望它在那里渲染并始终渲染导航栏。我在文档中没有看到用于重定向的 createBrowserRouter 选项。
您可以通过组件和prop 渲染从"/"到 的重定向。"/home"Navigatereplace
例子:
const router = createBrowserRouter([
{
//set App as root element...
path: "/",
loader: () => { ... },
element: <App />,
errorElement: <ErrorPage />,
//set routes for child elements...
children: [
{
index: true, // <-- match on parent, i.e. "/"
element: <Navigate to="/home" replace /> // <-- redirect
},
{
path: "/home",
element: <Home />
},
{
path: "/about",
element: <About />,
errorElement: <ErrorPage />
},
{
path: "/blog",
element: <Blog />,
errorElement: <ErrorPage />
},
{
path: "/services",
element: <Services />,
errorElement: <ErrorPage />
}
]
}
]);
Run Code Online (Sandbox Code Playgroud)