Я занимаюсь разработкой веб-приложения с использованием React, и вот что я пытаюсь сделать:
- В компоненте высшего порядка проверьте, вошел ли пользователь в систему, и, если он вошел, обновите Значение контекста 'userinfo'.
- В Profile. js получите значение контекста 'userinfo'.
- Проверьте, имеет ли значение userinfo значение NULL или нет, и соответственно вызовите различные API.
Я написал следующий код. Проблема заключается в том, что, по-видимому, существует задержка во времени для доставки значения контекста userinfo в компонент. Поэтому при использовании ловушки useEffect () Profile. js будет визуализироваться дважды, когда userinfo не равен нулю.
Есть ли способ исправить этот код так, чтобы он ждал переменную 'userinfo' и затем соответственно вызывал соответствующие API-интерфейсы, а не раньше?
Ниже приведен код. Любой совет? Большое спасибо заранее!
import React, {useEffect, useContext} from 'react';
import Userinfo from "../context/Userinfo";
function Profile(props) {
const {userinfo, setuserinfo}=useContext(Userinfo);
useEffect(()=>{
((userinfo==null)?
/*API call A (When user is not logged in) */ :
/*API call B (When user is logged in) */
)},[userinfo])
return (
(userinfo==null)?
/*Elements to render when user is not logged in) */ :
/*Elements to render when user is logged in) */
);
}
export default Profile;