Мне нужно использовать данные, поступающие из useContext, для аутентификации, если пользователь вошел в систему как Admin или нет. Но он сначала дает значение «undefined», а затем после задержки в 5 секунд дает фактическое значение . Но к тому времени код ломается, потому что он не может работать с "undefined".
import React, { useContext, useEffect } from 'react';
import { useHistory } from 'react-router-dom';
import { AuthContext } from '../../context/AuthContext';
const Admin = () => {
const history = useHistory();
const { userData } = useContext(AuthContext);
console.log(userData); // ****** This first gives {token: undefined, user: undefined}
/***************************** Then it gives the actual data after 5-10 seconds delay
* {token: "eyJhbGciOiJIUzI", user: {…}}
token: "eyJhbGciOiJIUzI"
user:
isAdmin: true
__v: 0
_id: "5eea03a736b70722c83a7b63"
*******************************************************************/
// I WANT TO FETCH "isAdmin" // so that I can work on further code
if (!userData.user.isAdmin) {
history.push("/");
};
return <h1>Admin Panel</h1>
};
Нужно ли мне использовать async / await? Потому что я пытался сделать это в пользовательской функции asyn c, и это выдавало другую ошибку, что мы не можем использовать useContext в функции без реакции.