Если вам нужно перенаправить изнутри компонента / функции, вы можете использовать функцию истории следующим образом:
const createHistory = require("history").createBrowserHistory;
Redirectpath = () => {
let history = createHistory();
history.push("/login");
let pathUrl = window.location.href;
window.location.href = pathUrl;
}
В противном случае, если вы создаете промежуточное программное обеспечение для защиты своих маршрутов и хотите перенаправить на страницу входа на ошибка или несанкционированный доступ, тогда вы можете:
import React from "react";
import {
BrowserRouter as Router,
Switch,
Redirect,
Route,
} from "react-router-dom";
import Login from "./components/pages/Login";
import Home from "./components/pages/Home";
function App() {
const checkAuth = () => {
try {
// To be replaced with you condition
if (false) {
return false;
}
} catch (e) {
return false;
}
return true;
}
const AuthRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
checkAuth() ? (
<Component {...props} />
) : (
<Redirect to={{ pathname: '/login' }} />
)
)} />
)
return (
<div className="row">
<Router>
<Switch>
<AuthRoute exact path="/" component={Home} />
<Route exact path="/login" component={Login} />
</Switch>
</Router>
</div>
);
}
export default App;