我目前正在SPA中使用hashHistory。当用户注册时,他们会收到一封电子邮件来验证该帐户。当他们点击验证按钮时,它将重定向到我的网站,并在网址中使用jwt令牌
当前网站网址:
website.com/#/
在电子邮件中点击验证后:
website.com/#/dashboard#SomeReallyLongTokenValue
问题是,因为我使用的是hashHistory,所以我不能这样做:
this.props.location.hash
因为它将第一个哈希视为现在的值(这是一个空字符串)。我该如何解决?我知道转移到浏览器历史会修复它,但目前不可能。
答案 0 :(得分:0)
您可以添加每次哈希更改时调用的全局hashchange event handler,检查是否存在多个哈希字符并选择您需要的段并设置正确的哈希值。
window.addEventListener('hashchange', function (e) {
var fragments = e.newURL.split('#');
if (fragments.length <= 2) {
return;
}
location.hash = fragments[fragments.length-1];
});