Я новичок в реагировании и пожаре.
ПРОБЛЕМА:
Я пытаюсь получить доступ к переменной, которая возвращает true, когда она успешнополучает результат, он работает внутри метода .then, но снаружи метод не может получить результат (переменная isStudent).Есть ли способ получить и назначить в этом функциональном компоненте, вместо того, чтобы сделать его компонентом класса.любые предложения, советы будут полезны.
const Routes = props => {
if (props.user) {
let isStudent=false;
const uid = props.user.uid;
firebase
.database()
.ref(`student/${uid}`)
.once("value")
.then(snapshot => {
if (snapshot.val().role === "student") {
console.log(snapshot.val());
isStudent=true
}
});
console.log(isStudent); //false
//i am getting the default value, if i remove that i get undefined
return (
<MainLayout>
<Switch>
<StudentPublicRoute
{...props}
exact
restricted={true}
path="/student/login"
component={StudentLogin}
/>
{isStudent&& <StudentPrivateRoute
{...props}
path="/student/studentdashboard"
exact
component={StudentDash}
/>}
</Switch>
</MainLayout>