Лучше использовать scanf ("% [^\n]", str) в c ++, чем cin.ignore () после cin >> statement.Чтобы сделать это сначала, вам нужно включить & lt; cstdio>.
попытаться редактировать PrivateRoute.js
if (localStorage.getItem('user')) {
return <Route {...rest} render={props => <Component {...props} />} />
} else {
return <Redirect to={{ pathname: '/login', state: { from:
props.location } }} />
}
Это работает?
моя ссылка на навигацию в меню:
<NavLink to="/agenda">
<Title>Agenda</Title>
</NavLink>
маршруты
import React from 'react';
import styled from 'styled-components';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import { PrivateRoute, PublicRoute } from './utils/routeAuth';
import Dashboard from './pages/Dashboard';
import Login from './pages/Login';
import Menu from './components/Menu';
const Body = styled.div`
display: flex;
flex-direction: column;
width: 100%;
background: #edeef0;
overflow: auto;
`;
const Routes = () => (
<BrowserRouter>
<Switch>
<PublicRoute path="/login" component={Login} />
<PrivateRoute component={DefaultContainer} />
</Switch>
</BrowserRouter>
);
const NotFound = () => <div>not found</div>;
const DefaultContainer = () => (
<Body>
<Route component={Menu} />
<Route path="/" exact component={Dashboard} />
<Route path="/agenda" component={Dashboard} />
<Route path="/alunos" component={Dashboard} />
<Route path="/turmas" component={Dashboard} />
<Route component={NotFound} />
</Body>
);
export default Routes;
использует / routeAuth
import React from 'react';
import { Route, Redirect } from 'react-router-dom';
import { getCookie } from './cookie';
export const PrivateRoute = ({ component: Component, ...rest }) => {
const isAuthenticated = getCookie('token');
return (
<Route
{...rest}
render={props => (isAuthenticated ? (
<Component {...props} />
) : (
<Redirect to={{ pathname: '/login', state: { from: props.location } }} />
))
}
/>
);
};
export const PublicRoute = ({ component: Component, ...rest }) => {
const isAuthenticated = getCookie('token');
if (isAuthenticated) {
return <Redirect to="/" />;
}
return <Route {...rest} component={Component} />;
};
для более подробной информации: страница авторизации , navlink