использование useEffect для извлечения данных из контекста при загрузке страницы - PullRequest
1 голос
/ 14 июля 2020

Мне нужна помощь в этом разобраться. У меня есть токен, который я храню в контексте globalContext. Я хочу получить этот токен при загрузке страницы и сделать с ним запрос. Но мне кажется, что когда я пытаюсь получить его с помощью хука useEffect с зависимостью [] и пытаюсь записать его на консоль, он показывает пустую строку, записанную как это

image

const GlobalContextProvider = (props) => {
  const [globalState, setGlobalState] = useState({
    userType: "", //Organisation or Changemaker
    showModal: false,
    modalContent: "", //profile, editprofile, studentlisting, orglisting, createlisting
    access_token: "",
    isSigningUp: false,
  });

  const [profile, setProfile] = useState({});

  const updateGlobalState = (key, val) => {
    setGlobalState((prevState) => ({
      ...prevState,
      [key]: val,
    }));
  };

  return (
    <GlobalContext.Provider
      value={{ globalState, updateGlobalState, profile, setProfile }}
    >
      {props.children}
    </GlobalContext.Provider>
  );
};

useEffect hook

  useEffect(() => {
    
    console.log(globalState.access_token);
  }, []);

1 Ответ

0 голосов
/ 14 июля 2020

Вам необходимо добавить globalState.access_token в качестве зависимости от вашего обратного вызова useEffect. Пример:

useEffect(() => {
  console.log(globalState.access_token);
}, [globalState.access_token])

Обратите внимание, что эта функция будет срабатывать каждый раз при изменении значения globalState.access_token.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...