【问题标题】:How to prevent react-router from refreshing page?如何防止 react-router 刷新页面?
【发布时间】:2020-08-05 14:48:49
【问题描述】:

有什么问题?

我正在使用 react-router-dom v5 在 reactJs 中构建一个项目。我已经为路由添加了默认路由

现在的问题是,简单的刷新也会将我重定向到默认路由。如何预防?

代码sn-p: 应用.js

return (
      <div className="App">
            <Switch>
               <div id="wrapper" className="main_page">
                 <ErrorBoundary resetState={state}>
                  <Header/>
                    </ErrorBoundary>
                      <div id="page-wrapper" className="mainContentArea">
                        <Route path={`/dashboard/units`} component={Dashboard} />
                          <ErrorBoundary resetState={state}>
                            <Suspense fallback={<div>Loading..</div>}>
                              <Route path={`/dashboard/someRoute`} component={someComponent} />
                            </Suspense>
                          </ErrorBoundary>
                        <Redirect to={"someComponent"}/>
                
                     </div>
                </div>
           </Switch>
      </div>
    );

有人可以帮我解决上述问题吗?由于 App.js 中的重定向,即使通过简单的刷新,我也会被重定向到仪表板

编辑:我在一个单独的组件中有Router和BrowserRouter。这只是一个sn-p

【问题讨论】:

  • 我在您的代码中看不到 &lt;Router&gt;。是丢失了还是您只是将其包装在此代码之外的某个地方?
  • 你能举一个你的问题的例子吗?当您在 /dashboard/units 并在浏览器中点击刷新时,您是否被重定向到 SomeComponent
  • 是的。如果我在 /dashboard/units 并点击刷新,它会将我重定向到 someComponent(这是我的仪表板)

标签: javascript reactjs react-router-dom


【解决方案1】:

尝试将 exact 属性添加到 &lt;Redirect to="/dashboard/units" /&gt;,但在此之前不要忘记将您的路由包装到 BrowserRouter:https://reactrouter.com/web/api/BrowserRouter

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 2018-01-13
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2022-06-13
    相关资源
    最近更新 更多