[英]React private route not redirecting to index page [React-Router "5.2.0"]
I've created private route for check user logged in or not.我已经为检查用户是否登录创建了私人路线。 But it is not redirecting to index page if user logged in.Here is my code.
但如果用户登录,它不会重定向到索引页面。这是我的代码。
Private route:私人路线:
import React from 'react'
import { useSelector } from 'react-redux';
import { Redirect } from 'react-router-dom';
const Privateroute = ({children}) => {
const user = useSelector((state)=> state.user.value);
console.log("Privateroute");
console.log(user.email);
return user.email == null ? children : <Redirect to="/auth/login" />
};
export default Privateroute;
My App.js
looks like this我的
App.js
看起来像这样
import React from "react";
import ReactDOM from "react-dom";
import { HashRouter as Router, Route, Switch, Redirect } from "react-router-dom";
import AdminLayout from "layouts/Admin.js";
import AuthLayout from "layouts/Auth.js";
import { store } from "./views/examples/redux/store";
import { Provider, useDispatch , useSelector } from 'react-redux'
import Privateroute from "views/examples/Privateroute";
import {login} from './views/examples/redux/cred'
function App() {
return (
<Router>
<Switch>
<Route path="/admin" render={(props) => <AdminLayout {...props} />} />
<Route path="/auth" render={(props) => <AuthLayout {...props} />} />
<Privateroute> <Redirect from="/" to="/admin/index" /> </Privateroute>
</Switch>
</Router>
)
}
export default App
What I am doing wrong here?我在这里做错了什么?
You dont need to write a Redirect into Private component您不需要将重定向写入私有组件
App.js import React from "react"; import ReactDOM from "react-dom"; import { HashRouter as Router, Route, Switch, Redirect } from "react-router-dom"; import AdminLayout from "layouts/Admin.js"; import AuthLayout from "layouts/Auth.js"; import { store } from "./views/examples/redux/store"; import { Provider, useDispatch , useSelector } from 'react-redux' import Privateroute from "views/examples/Privateroute"; import {login} from './views/examples/redux/cred' function App() { return ( <Router> <Switch> <Route path="/admin" render={(props) => <AdminLayout {...props} />} /> <Route path="/auth" render={(props) => <AuthLayout {...props} />} /> <Privateroute> //your private components only here like profile etc... </Privateroute> </Switch> </Router> ) }
export default App导出默认应用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.