В настоящее время я пытаюсь выяснить, почему это не работает, не нашел и ищу помощь. Когда я отключен, я могу go на панели инструментов (PrivateRoute). Я записал токен на консоль, и он должен быть похож на false, когда я не подключен, но он по-прежнему позволяет мне go на частные маршруты
const App = () => {
const [token, setToken] = useState(false);
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
fetch("/token")
.then(res => res.json())
.then(json => {
setToken(json.authed);
console.log(token)
setIsLoading(false);
})
.catch(err => {
console.log(err);
});
}, []);
if (isLoading) {
return <div>Loading....</div>;
} else {
console.log(token);
return (
<div>
<Router history={history}>
<Switch>
<Route path="/" component={MenuBar} />
<Route path="/login" component={Login} />
<ProtectedRoute
path="/dashboard"
auth={token}
component={Dashboard}
/>
</Switch>
</Router>
</div>
);
}
};
const Dashboard = () => {
return <div>Dashboard</div>;
};
const Login = () => {
return (
<div>
<h1>Login</h1>
</div>
);
};
const ProtectedRoute = ({ auth, component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
auth ? <Component {...props} /> : <Redirect to="/login" />
}
/>
);
export default App;