RouterBrowser 不会在刷新时重定向到默认页面

Posted

技术标签:

【中文标题】RouterBrowser 不会在刷新时重定向到默认页面【英文标题】:RouterBrowser doesn't redirect to default page on refresh 【发布时间】:2021-10-22 14:58:49 【问题描述】:

我有一个登录页面,我希望浏览器默认路由到该页面。我的代码是在第一次运行时这样做的(重定向到 http://localhost:3000/login),但是在我路由到不同的页面并点击刷新后,它不会重定向回登录页面,而是继续它所在的最后一个 URL。我做错了什么?

   return (
    <div>
      <h1>Movies - Subscriptions Web Site</h1>
      <br />
      <Link to="/movies" style= textDecoration: "none" >
        <input type="button" value="Movies" />" "
      </Link>
      <Link to="/subscriptions" style= textDecoration: "none" >
        <input type="button" value="Subscriptions" />" "
      </Link>
      <Link to="/userManagement" style= textDecoration: "none" >
        <input type="button" value="User Management" />" "
      </Link>
      <input type="button" value="Log Out" />

      <Switch>
        <Route exact path="/">
          <Redirect to="/login" />
        </Route>
        <Route path="/login" component=LoginComp />
        <Route path="/movies" component=MoviesComp />
        <Route path="/subscriptions" component=SubscriptionsComp />
        <Route path="/userManagement" component=ManageUsersComp />
      </Switch>
    </div>
  );

【问题讨论】:

【参考方案1】:

删除exact 属性和route 标签

<Redirect to="/login" />

【讨论】:

我在 之前写了 并且只有这样才有效。实际上这很有意义:) 谢谢!【参考方案2】:

去掉exact和route标签直接写

<Redirect path="/" to="/login" />

【讨论】:

我在 之前写了 并且只有这样才有效。实际上这很有意义:) 谢谢!

以上是关于RouterBrowser 不会在刷新时重定向到默认页面的主要内容,如果未能解决你的问题,请参考以下文章

React.js身份验证在每次刷新时重定向到登录名

如果用户登录 React 和 Typescript,则在刷新时重定向到仪表板

带有访客和身份验证中间件的 Nuxt 身份验证将经过身份验证的用户在刷新时重定向到错误的页面

Spring OAuth2 不会在表单登录时重定向回客户端

window.location.replace();没有在按钮单击时重定向页面

Vue路由器在重新加载时重定向到主页