如何解决window.pushState和window.addEventListener“ popstate”有时不起作用,大部分在谷歌浏览器中不起作用
当用户转到应用程序中的特定页面时,我尝试通过遵循特定链接来重定向用户。在这种情况下,浏览器以前没有历史记录,当用户单击浏览器的后退按钮时,我尝试将用户重定向到应用程序的主页(默认情况下,他们将返回到浏览器的主页)。
这是我的代码:
componentDidMount() {
if (!location.state) {
window.history.pushState(location.state ? { catalog: true } : null,null,window.location.pathname);
}
window.addEventListener('popstate',this.onBackButtonEvent);
}
componentWillUnmount() {
window.removeEventListener('popstate',this.onBackButtonEvent);
}
onBackButtonEvent = (e) => {
e.preventDefault();
this.back();
}
back = () => {
const { history,location } = this.props;
if (location.state) {
history.goBack();
}
else {
history.push('/home');
}
}
如果有人通过以下链接直接跳转到页面,则this.props.location.state 将为空。
问题是,有时它可以工作,但有时它却不工作,大多数情况下它可以在Mozilla中工作,但有时在chrome中不工作。有人可以帮助我找出代码中的错误吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。