如何从reactjs customhook获取价值?

如何从reactjs customhook获取价值?,reactjs,Reactjs,我有一个像这样的钩子 import React from 'react'; export default function usePersistedState(key, defaultValue) { const [state, setState] = React.useState(() => { const persistedState = localStorage.getItem(key); return persistedState ? persistedSta

我有一个像这样的钩子

import React from 'react';

export default function usePersistedState(key, defaultValue) {
  const [state, setState] = React.useState(() => {
    const persistedState = localStorage.getItem(key);
    return persistedState ? persistedState : defaultValue;
  });
  React.useEffect(() => {
    window.localStorage.setItem(key, state);
  }, [state, key]);
  return [state, setState];
}
我正在存储一些令牌信息

 usePersistedState('authentication', keycloak.token);
现在在服务类中,我想获取保存的信息 功能GetToken(道具){ const token=usePersistedState(props,'test'); 返回令牌; }

相同的服务级别

function getAll(pageNo, limit){
    return httpClient({
        url: `api/posts?page=${pageNo}&limit=${limit}`,
        method: 'GET',
        headers: {
          'Content-type': 'application/json',
          'Authorization': 'Bearer ' +GetToken('authentication'),
          'Access-Control-Allow-Origin': '*'
      },
    });
}

但是它失败了。代码有什么问题?如何从自定义钩子访问保存数据?

您不能在正常函数中使用钩子,它只能在返回React元素或HOC的函数中运行。

实现它的其他方法是什么?我正在努力解决这个问题,新手们会做出反应。我可以有简短的回答,因为我现在在手机上。您的问题可能是首先初始化了
httpClient
。然后,当用户登录时,它不会重新初始化
httpClient
。该令牌在此之后被保存,这就是为什么它在您点击F5后工作。感谢您的评论。您知道如何解决该问题吗?