我正在嘗試在我的 React 應用程序中設置 PrivateRoute 組件,但是當我將重定向分離到另一個文件時,如果 Auth 為 false,它似乎不會重定向 - 它只是掛在管理頁面上,沒有加載任何組件。當我的 App.js 中有 PrivateRoute 函數時,該組件工作正常,但是當我將它分成一個新文件時,react-routers Redirect 似乎不起作用這是函數:import React from 'react';import { BrowserRouter as Redirect, Route } from "react-router-dom";function PrivateRoute({component: Component, ...rest}) { const isAuth = false; return ( <Route {...rest} render={props => isAuth ? ( <Component {...props} /> ) : ( <Redirect to={{ pathname: "/login", state: { from: props.location } }} /> ) } /> )}export default PrivateRoute;這是我的路線清單import React, {useState, useEffect} from 'react';import { BrowserRouter as Router, Route, Redirect } from "react-router-dom";import Home from './views/Home';import Players from './views/Players';import Stats from './views/Stats';import Admin from './views/Admin';import Nav from './components/Nav/Nav';import SideNav from './components/SideNav/SideNav';import Login from './views/Login';import PrivateRoute from './components/PrivateRoute/PrivateRoute';function App() { const [navState, setNavState] = useState(false); return ( <Router> <div id="app" className="centurion-major-app d-flex"> <main className="flex-1 main_container"> <Route path="/" exact component={Home} /> <Route path="/players/" component={Players} /> <Route path="/stats/" component={Stats} /> <Route path="/login/" component={Login} /> <PrivateRoute path="/admin/" component={Admin} /> </main> </div> </Router> );}export default App;我知道我可以將 PrivateRoute 函數留在 App.js 中,但我不明白為什么它不起作用?
當我將它分成另一個組件時,React-router Redirect 似乎不起作用
慕容708150
2021-09-30 14:59:00