【问题标题】:How to clear browser back button history in react-router-dom如何在 react-router-dom 中清除浏览器后退按钮历史记录
【发布时间】:2021-12-28 11:24:30
【问题描述】:

我正在使用ReactJS 设计一个Web 应用程序。在这里,我使用react-router-dom 进行导航。

这里是这样的

import { BrowserRouter, Route, Routes } from 'react-router-dom'
    <BrowserRouter>
        <Routes>
              <Route exact path='/login' element={<LoginPage />} />
              <Route exact path='/homePage' element={<HomePage />} />
              <Route exact path='/detailsPage' element={<DetailsPage />} />
        </Routes>
    </BrowserRouter>

由于在最近的版本中useHistoryuseNavigation 取代,我使用useNavigation 来导航页面。

代码:

import { useNavigate } from "react-router";
const navigate = useNavigate();

 / **For Navigating ** /
navigate("/login")

效果很好。但是当我导航到loginPage 时,我想清除浏览器Back 按钮中存储的所有历史记录。我在useHistory 中找到了解决方案。但在useNavigation 中,它不起作用。

我试过的代码:

navigate[0] = navigate[navigate.length - 1]
navigate("/login")

还有这个

navigate("/login", { replace: true })

它不工作。我想知道如何为我的 url 清除存储在 Browser Back Button 中的所有历史记录。如果我回去,我什至可以访问主页。我读了他们的文档https://reach.tech/router/api/useNavigate 但找不到解决办法。请帮助我解决此问题。

【问题讨论】:

  • 你找到解决办法了吗?

标签: javascript html reactjs react-router react-router-dom


【解决方案1】:

试试这个

navigate("/login", { replace: true })

我认为这会起作用

【讨论】:

  • 我试过这个。它不工作
【解决方案2】:

你可以使用 react-router 中的 .replace 方法来做到这一点。

import { useHistory } from "react-router";
const history = useHistory();
history.replace(`your page url`);

【讨论】:

  • useHistory() 在 react-router 中不再可用。他们改为 useNavigate()
猜你喜欢
  • 2015-05-18
  • 2017-08-17
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2018-12-25
  • 2011-11-14
  • 1970-01-01
相关资源
最近更新 更多