react-router v4:你如何处理" /"页面作为其他页面的同义词?

时间:2017-03-23 17:23:58

标签: react-router-v4

我有一台服务器为多个URL呈现相同的单页应用程序:

/
/A
/B

我希望A充当" Home"页。 所以浏览器请求" /"或" / A"应该显示相同的东西。

特别是,我将链接到A和B页面,我想要将A的链接标记为活动,以便" /"和" / A"。

所以我使用的是:

<NavLink to="/A" activeClassName='nav-active'>Go to A</NavLink>
<NavLink to="/B" activeClassName='nav-active'>Go to B</NavLink>

<Router>
 <Route path='/A' component={A} />
 <Route path='/B' component={B} />
</Router>

我如何制作&#34; /&#34;作为&#34; / A&#34;的同义词?我尝试了什么:

  • 使用Route添加另一个path="/":这会导致显示两个组件
  • 使用像path="/(A)?"这样的正则表达式:这会显示正确的组件,但链接未标记为有效

我应该将其实现为服务器端重定向(只需将/重定向到/A而不是提供相同的网页内容吗?)

2 个答案:

答案 0 :(得分:1)

似乎Redirect可以解决这个问题

<Router>
 <Route path='/A' component={A} />
 <Route path='/B' component={B} />
 <Route path='/' render={() => (
   <Redirect to='/A' />
 )} />  
</Router>

答案 1 :(得分:0)

您可以添加get_context_data

get_queryset