【问题标题】:React refresh redirects to home with same url of the where page refreshedReact 刷新重定向到主页,与刷新页面的 url 相同
【发布时间】:2021-03-19 06:27:41
【问题描述】:

我已经响应路由器 dom 从一个组件路由到另一个组件。提及下面用于组件之间路由的代码。

<Router>
      <Switch>
        <Route path="/" component={Language} exact />
        <Route path="/termsandconditions" component={TermsConditions} exact />
      </Switch>
</Router>

当我在/termsandconditions的url中时的实际问题,我刷新了页面它将重定向到带有/termsandconditions的url的语言组件,如果URL在@987654325中@ TermsConditions 组件 将在刷新页面时呈现。

刷新页面时的任何解决方案。它会保留在当前 URL 的组件中。

【问题讨论】:

  • 您是否有机会在您的应用中渲染多个Router 组件?
  • 不,这是唯一包含路由器的组件
  • 肯定有其他事情发生,如Codesandbox 示例所示,它与您提供的代码配合得很好。
  • 我的另一个预感是您将应用程序托管在未正确配置服务器/目录的某个位置(我相信这与 .htaccess 文件有关,用于请求“嵌套”路由)。从技术上讲,您的 React 应用程序是一个单页应用程序,而路由器只是操纵地址栏。

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


【解决方案1】:

我认为您可以使用会话存储来保存页面刷新事件之前的最后一条路线

window.onbeforeunload = () => {
            window.sessionStorage.setItem('lastRoute', JSON.stringify(window.location.pathname))
        }

将上面的代码添加到您的 App.js useEffect 中,然后您可以访问会话存储并获取最后一个路由并重定向到它。

【讨论】:

    猜你喜欢
    • 2022-08-22
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2021-12-06
    • 2020-12-31
    • 2018-03-03
    • 2019-01-05
    相关资源
    最近更新 更多