In my react app while refreshing on the pages that require being loggedIn it takes me to homepage. Information that someone is loggedIn stored in state which gets updated on base of value of auth true/false (which is stored in sessionstorage). How can I force react to first change state (its default is false) before rendering component?
const [loggedIn, setLoggedIn] = useState(false)
const [user, setUser] = useState("temp");
Axios.defaults.withCredentials=true;
useEffect(()=>{
Axios.get("http://localhost:3001/check")
.then((response)=>{
sessionStorage.setItem('auth', JSON.stringify(response.data["Authorized"]));
});
if(sessionStorage.getItem("auth")==="true"){
setLoggedIn(true)
}else{
setLoggedIn(false)
}
})
return (
<>
{loggedIn ? <LoggedInNavbar user={user} /> : <Navbar/>}
<AnimatePresence>
<Routes location={location} key={location.pathname}>
<Route
path="/"
element={<Home/>}/>
<Route
path="/logowanie/:state"
element={loggedIn ? <Navigate to="/"/> : <LogIn/>}/>
<Route
path="/rejestracja"
element={loggedIn ? <Navigate to="/"/> : <SignUp/>}/>
<Route
path="/regulamin"
element={<Rules/>}/>
<Route
path="/dashboard/:username"
element={loggedIn ? <Dashboard user={user}/> : <Navigate to="/"/>}/>
</Routes>
</AnimatePresence>
</>
)
}```