Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在加载页面之前删除url中的哈希_Javascript_Reactjs_Url_React Hooks - Fatal编程技术网

Javascript 在加载页面之前删除url中的哈希

Javascript 在加载页面之前删除url中的哈希,javascript,reactjs,url,react-hooks,Javascript,Reactjs,Url,React Hooks,我正在尝试从url中捕获哈希,例如https://examplesite.com/page#time=1/12/2019&index=12344&access_token=JWT但在我有机会捕获它之前,url中的access\u令牌会被删除,在站点加载时,我无法使用window.location.hash捕获哈希 我的示例位于React功能组件内部,使用React挂钩: const watchHash=()=>{ if(window.location.hash.includes('access\

我正在尝试从url中捕获哈希,例如
https://examplesite.com/page#time=1/12/2019&index=12344&access_token=JWT
但在我有机会捕获它之前,url中的
access\u令牌
会被删除,在站点加载时,我无法使用
window.location.hash捕获哈希

我的示例位于React功能组件内部,使用React挂钩:

const watchHash=()=>{
if(window.location.hash.includes('access\u token')){
console.log(window.location.hash);
}
};
useffect(()=>{
addEventListener('hashchange',watchHash);
watchHash();
返回窗口。removeEventListener('hashchange',watchHash);
}, []);
上面的代码监视散列并仅打印不包含
访问令牌的url,例如此
#time=1/12/2019&index=12344
, 如果尝试
console.log(window.location.hash)
在钩子外部和组件本身的顶部,则发生此事件


我似乎不明白它为什么这样做,非常感谢。

在您的应用程序中,您在哪里添加事件侦听器?如果在url更改后附加事件侦听器,则显然不会发出事件。@StephanOlsen此事件侦听器挂钩位于
登录
组件内,ur加载此组件。应用程序的哪个部分从url中删除哈希?无论如何,您都需要将事件侦听器在组件树中向上移动,以便能够在事件发生之前附加侦听器。@StephanOlsen我不知道是什么在删除它,如果有什么东西在删除它,为什么要保留其他哈希?另外,我把它放到了最上面的组件中,仍然在捕获哈希之前删除了它。我猜您正在使用某种身份验证库,它可能正在从哈希中删除访问令牌。如果没有看到一些代码,就很难进一步帮助您。