当前位置: 首页 > 知识库问答 >
问题:

如何设置一个可选的参数根路由在react-router v4?

贺季同
2023-03-14

假设我有以下两条路线:

    ...
    <Route exact path="/:param1?/" component={Home}/>
    <Route path="/news" component={News}/>
    ...

现在,当我尝试点击路由/news的根路由为Home与参数参数1被触发...

我假设解决方案是在param1前面设置一个问号,就像这样/?param1,这样它就可以从路由中保持住,但我不知道如何在react router v4中做到这一点

共有1个答案

司马项明
2023-03-14

在官方文件中有一个这样做的例子。你可以在这里找到。

您需要首先使用 /news路由的交换机组件。

<Switch>
    <Route path="/news" component={News}/>
    <Route exact path="/:param1?/" component={Home}/>
</Switch>

开关将始终仅渲染一条路线。因此,在上面的例子中,如果/news没有变为活动状态,那么/:param1将变为活动状态。

 类似资料:
  • 我已将路径修改为 在此之后,如果我试图访问url,它不会将我重定向到适当的页面,而是抛出一个错误,如下所示

  • 我对如何从根开始做(多个)可选路径参数有点困惑。我用的是React-Router3和Redux4.3。 据我所知,应该可以工作,但在加载应用程序时,我遇到了以下错误:

  • 有没有一种干净的方法可以将当前可选查询参数与模板中链接上的附加可选查询参数合并? 当前URL:< code >/search;brand=Trek 所需的转到链接:(startCount 将递增) 我知道Angular支持合并普通查询参数的功能(https://angular.io/docs/ts/latest/api/router/index/RouterLink-directive.html)

  • 所以我有一些路线,比如<code>/category/tech</code>和<code</categority/tech/new<code>和<code>/category/tech/old</code>等等 他们都使用 或者我必须分别定义它们,就像

  • 问题内容: 我有以下几点: 使用DefaultRoute时,由于任何* Dashboard需要在Dashboard中呈现,因此SearchDashboard呈现不正确。 我想在“应用”路由内将DefaultRoute指向路由“ searchDashboard”。这是我可以使用React Router进行的操作,还是应该为此使用常规Javascript(用于页面重定向)? 基本上,如果用户转到主页,

  • 我有以下几点: 使用DefaultRoute时,SearchDashboard渲染不正确,因为任何*仪表板都需要在仪表板中渲染。 我想为我的默认路线内的"应用程序"路由指向路由"搜索仪表板"。这是我可以用React路由器做的事情吗,或者我应该为此使用普通的Javascript(页面重定向)? 基本上,如果用户转到主页,我希望将其发送到搜索仪表板。所以我想我正在寻找一个与