如何重定向到个人资料?
Posted
技术标签:
【中文标题】如何重定向到个人资料?【英文标题】: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
)?
重定向组件
如果有人使用<Link to="/profiles">Profiles</Link>
点击个人资料,您是否希望人们被重定向到“/”?如果是,为什么配置文件组件存在于 Route 中?如果重定向需要特定条件,可以在路由内部使用三元运算符进行处理(类似于redirectCondition ? <Redirect to="/" /> : <Profile />
)
【参考方案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”。跨度>
以上是关于如何重定向到个人资料?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Passport 进行社交身份验证登录后如何重定向到个人资料页面? (角度,快递,护照,jwt)