如何从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后工作。感谢您的评论。您知道如何解决该问题吗?