gpt4 book ai didi

javascript - React Router Dom v4 处理浏览器后退按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:39 27 4
gpt4 key购买 nike

如何使用 react-router-dom v4 禁止用户点击浏览器后退按钮?

我在页面上显示一个模式,当用户按下浏览器后退按钮时,用户将被带到上一个屏幕,而我只想关闭模式。

我试过这样做

onBackButtonEvent(event) {
event.preventDefault();
// the user shouldn't be able to move backward or forward
}
componentDidMount() {
window.onpopstate = this.onBackButtonEvent;
}

但这并不妨碍用户后退或前进。有没有办法通过 react-router-dom 来处理这个问题?

我尝试了多种解决方案,但似乎没有任何效果。

最佳答案

我知道这个问题有点老,但我在自己寻找答案时偶然发现了它。没有一种干净的方法可以“禁用”后退按钮,但可以让用户仅在单击浏览器后退按钮时关闭模式,我发现这是可行的。

只需将历史记录传递给 props 中的模态组件,然后在 componentWillUnmount 函数上调用以下内容。

componentWillUnmount() {
this.props.history.goForward();
}

这将无缝地强制浏览器停留在同一页面上但关闭模式(假设它是一个类组件)。

更新:如果使用功能组件,上面的 componentWillUnmount 函数看起来像下面的钩子(Hook)。

React.useEffect(() => {
return () => {
props.history.goForward();
}
}, []);

关于javascript - React Router Dom v4 处理浏览器后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51381060/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com