Quiero dirigir al usuario a la página de inicio de sesión si no está autorizado. Escribí el código inferior para este propósito. La ruta raíz es la página de inicio de sesión y la página AdminPanel es para el administrador. Si data.success es verdadero, significa que la persona es administrador. Pero este código renderiza 404 no encontrado en http://localhost:3000/url de usuario. ¿Cómo puedo solucionar este problema?
const App = () => { const [auth, setAuth] = useState(false); const authControl = async () => { try { const res = await axios({ url: "https://localhost:44357/api/Auth/user", withCredentials: true, }); console.log(res.data.success); if (res.data.success) setAuth(true); } catch (err) { console.log(err); } }; useEffect(() => { authControl(); }, []); return ( <div> <BrowserRouter> <Route path="/" exact component={Login} /> <Route path="/user" render={() => { auth ? <AdminPanel /> : <Redirect to="/" />; }} /> <Route render={() => <h1>404 Not Found</h1>} /> </BrowserRouter> </div> ); };necesita envolver los <Route /> s en un <Switch /> del enrutador de reacción. algo como esto:
<Switch> <Route path="/public"> <PublicPage /> </Route> <Route path="/login"> <LoginPage /> </Route> </Switch>