首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面加载时使用useEffect从上下文中获取数据

在页面加载时使用useEffect从上下文中获取数据
EN

Stack Overflow用户
提问于 2020-07-14 17:29:08
回答 1查看 339关注 0票数 1

我需要你帮我解决这个问题。我有一个令牌,我将其存储在上下文globalContext中。我希望在页面加载时获取该令牌,并使用它发出请求。但在我看来,当我尝试使用带有[]依赖项的useEffect钩子来获取它,并尝试将它记录到控制台时,它会显示一个空行,如下所示

如果我移除钩子上的依赖项[]。它会在3-4秒内记录同一行,然后开始记录令牌。你认为这里的问题是什么?

GlobalContext

代码语言:javascript
复制
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

代码语言:javascript
复制
  useEffect(() => {
    
    console.log(globalState.access_token);
  }, []);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-14 17:38:56

您需要将globalState.access_token添加为useEffect回调的依赖项。示例:

代码语言:javascript
复制
useEffect(() => {
  console.log(globalState.access_token);
}, [globalState.access_token])

注意这个函数将在每次globalState.access_token的值改变时触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62892045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档