有没有办法清除反应中的反应历史记录?

Is there any way to clear react history in react?

我有一个针对移动用户的 Web 应用程序,但由于我们的客户不需要移动应用程序,因此它是使用 React 开发的。我已经使用 React Router 实现了应用内路由。我使用 useHistory 挂钩,所以基本上使用历史对象进行导航。我想让应用内导航和浏览器导航保持同步。

现在的要求是我有一个付款页面。当用户完成他的支付程序时,用户不应该能够返回到支付过程中涉及的任何页面。或者简单地说,如果用户点击后退按钮,他应该登陆主页。所以我想清除历史记录,这样用户就无法返回。但是似乎没有办法清除历史记录。

如果有人知道任何解决方案,请告诉我。

通常在购买流程中,您应该使用重定向 (history.replace) 来逐步浏览付款页面。如果用户随后按下后退按钮,那么他们将返回导航到他们所在的页面 ,然后在 他们进入“受限导航流程”之前".

或者您可以尝试使用 Prompt:

Used to prompt the user before navigating away from a page. When your application enters a state that should prevent the user from navigating away (like a form is half-filled out), render a <Prompt>.

查看 Preventing Transitions 演示。

您可以使用它来捕获在“受限导航流”中进行后退导航的尝试,然后阻止导航或强制重定向到您选择的路线,即 history.replace("/") 反弹用户一直回到主页。