Я довольно новичок в React Router. Я пытаюсь реализовать проверку подлинности, когда приложение работает так, как ответили здесь: Как реализовать аутентифицированные маршруты в React Router 4? . Если вы вошли в систему, он должен загрузить компонент панели инструментов, если нет, вы должны быть перенаправлены на экран входа в систему.
Перенаправление не работает, это просто пустая страница.
Есть идеи?
export default class App extends React.Component {
state = {
auth: false
};
updateAuth = value => {
this.setState({
auth: value
});
};
render() {
const { auth } = this.state;
console.log(auth);
const PrivateRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
render={props =>
auth ? (
<Component {...rest} />
) : (
<Redirect
to={{ pathname: "/login", state: { from: props.location } }}
/>
)
}
/>
);
};
return (
<Router>
<div>
<Route path="/login" component={Login} auth={this.updateAuth} />
<PrivateRoute path="/dashboard" component={Dashboard} />
</div>
</Router>
);
}
}
https://codesandbox.io/s/rj6pqkw7xq