【问题标题】:How to Redirect to Profiles?如何重定向到个人资料?
【发布时间】:2021-09-10 11:34:31
【问题描述】:

如果有人点击个人资料,我想重定向

<Link to="/">Home</Link>
<Link to="/profiles">Profiles</Link>

我尝试使用“重定向”,但是当我加载我的页面时,它默认为“/profiles”而不是默认为“/”(对不起,如果其他人也问了同样的问题)

这是我的路线

<Router>
  <Navbar />
  <Switch>
    <Route exact path="/">
      <Home />
    </Route>
    <Route path="/profiles">
      <Profile />
    </Route>
</Router>

【问题讨论】:

  • 如果“/profiles”链接被点击,我希望导航“/profiles”。但是您正在考虑页面加载时间和一些“默认”路线。我认为您的路线没有问题,有什么问题?
  • 我想在不加载现有导航栏的情况下重定向到“/profiles”(抱歉我的解释不好)
  • 这是什么意思?你想重定向到哪里(Redirect 组件或history.replace)?
  • 重定向组件
  • 如果有人使用&lt;Link to="/profiles"&gt;Profiles&lt;/Link&gt; 点击个人资料,您是否希望人们被重定向到“/”?如果是,为什么配置文件组件存在于 Route 中?如果重定向需要特定条件,可以在路由内部使用三元运算符进行处理(类似于redirectCondition ? &lt;Redirect to="/" /&gt; : &lt;Profile /&gt;

标签: reactjs redirect jsx react-router-dom


【解决方案1】:

是的,您可以在您的个人资料路由中使用 exact 并在路由顶部添加重定向方法。像这样。

<Router>
  <Navbar />
  <Switch>
   {
      /* Redirect from root URL to /dashboard. */
      <Redirect exact from="/" to="/profiles" />
    }
    <Route path="/">
      <Home />
    </Route>
    <Route exact path="/profiles">
      <Profile />
    </Route>
</Router>

【讨论】:

  • 这里完全不需要 exact 属性。此外,从“/”主路径中删除它而不重新排序路由意味着只有“/”主路径可以匹配和呈现。无法访问“/profiles”。
  • 现在“/”主页是无法访问的,如果试图准确地点击“/”(并且没有其他非配置文件路由)。
  • 是的,因为如果您在路线中获得“/”,则此条件会重定向到配置文件页面,因此您需要在路线中添加条件,或者您可以将主路线“/”更改为“/home”。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多