Какова лучшая практика для реализации response-router 4? В настоящее время я создал два компонента, PrivateRoute
и PublicRoute
. PublicRoute
- для /login
пути, и он отображает Login
компонент, а PrivateRoute
- для остальных путей, и он передает переданный компонент, если пользователь вошел в систему или выполняет перенаправление. PrivateRoute
код:
const PrivateRoute = ({component: Component, ...rest}) => (
<Route {...rest} render={(props) => (
helpers.getCurrentUser()
? (
<div className="wrapper">
<Sidebar/>
<div id="content">
<Navbar/>
<Component {...props}/>
<Footer/>
</div>
</div>
) :
<Redirect
to={{
pathname: "/login",
state: {from: props.location}
}}
/>
)}/>
);
И Router
компонент в том же файле:
export default () => (
<Router history={history}>
<Switch>
<Route exact path={'/login'} component={PublicRoute}/>
<PrivateRoute exact path={"/"} component={Dashboard}/>
<PrivateRoute exact path={"/users"} component={UsersComponent}/>
<PrivateRoute exact path={"/logs"} component={LogsComponent}/>
<PrivateRoute exact path={"/project"} component={ProjectComponent}/>
<PrivateRoute exact path={"/user"} component={UserComponent}/>
</Switch>
</Router>
);
Как реализовать перенаправление на страницу попытки, если она не зарегистрирована?