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

如何在React Router中将DefaultRoute设置为另一个路由

魏波娃
2023-03-14

我有以下几点:

  <Route name="app" path="/" handler={App}>
    <Route name="dashboards" path="dashboards" handler={Dashboard}>
      <Route name="exploreDashboard" path="exploreDashboard" handler={ExploreDashboard} />
      <Route name="searchDashboard" path="searchDashboard" handler={SearchDashboard} />
      <DefaultRoute handler={DashboardExplain} />
    </Route>
    <DefaultRoute handler={SearchDashboard} />
  </Route>

使用DefaultRoute时,SearchDashboard渲染不正确,因为任何*仪表板都需要在仪表板中渲染。

我想为我的默认路线内的"应用程序"路由指向路由"搜索仪表板"。这是我可以用React路由器做的事情吗,或者我应该为此使用普通的Javascript(页面重定向)?

基本上,如果用户转到主页,我希望将其发送到搜索仪表板。所以我想我正在寻找一个与窗口相当的React路由器功能。地方替换(“mygreathostname.com/#/dashboards/searchDashboard”)


共有3个答案

慕才
2023-03-14

我错误地试图创建一个默认路径:

<IndexRoute component={DefaultComponent} />
<Route path="/default-path" component={DefaultComponent} />

但这会创建两个不同的路径来渲染相同的组件。这不仅毫无意义,而且可能会导致UI出现问题,例如,当您设计

创建默认路由(不是索引路由)的正确方法是使用

<IndexRedirect to="/default-path" />
<Route path="/default-path" component={DefaultComponent} />

这是基于反应路由器1.0.0。看https://github.com/rackt/react-router/blob/master/modules/IndexRedirect.js.

陆翰学
2023-03-14

使用

如果您不希望用户能够刷新站点或发送URL,请使用以下选项:

<Route exact path="/" render={() => (
    <Redirect to="/searchDashboard"/>
)}/>

如果searchDashboard在登录之后,请使用此选项:

<Route exact path="/" render={() => (
  loggedIn ? (
    <Redirect to="/searchDashboard"/>
  ) : (
    <Redirect to="/login"/>
  )
)}/>

岑畅
2023-03-14

您可以使用重定向而不是默认路由

<Redirect from="/" to="searchDashboard" />

更新2019-08-09以避免刷新问题,请改用此选项,多亏了Ogglas

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

  • 问题内容: 假设我有一个名为的网站,并且在加载该网站的特定页面(例如页面链接)时,我想为另一个名为的网站设置Cookie ,然后将用户重定向到。 我的意思是,我想为其设置Cookie 并将用户重定向到。 我对其进行了测试,然后浏览器实际上从接收到了cookie ,但是在重定向请求到时,它没有发送该cookie 。正常吗 我们可以为其他域设置Cookie吗? 问题答案: 您不能为其他域设置Cooki

  • 问题内容: 我是角度新手:-)我只是想将一个div的尺寸设置为另一个,请给予任何帮助。 在控制器中,我添加了: 返回宽度和高度,但未应用 问题答案: 我已经为您的问题创建了解决方案。首先,我将向您解释我做了什么以及为什么这样做。 Angular中的一项基本准则是,应避免在控制器中处理div等DOM元素,而应在指令中执行与DOM元素有关的大多数操作。 指令允许您将功能绑定到特定的dom元素。在这种情

  • 关于Spring bean配置,我有两个主要问题:1。当我从应用程序上下文检索bean时,我通过属性文件读取的属性并不持久化。2.我很难弄清楚如何将bean的值设置为另一个bean-在下面的示例中,我试图将Plan bean的度量属性设置为某个bean。 我有两个小班,一个度量,和一个更大的计划: 但是当我尝试访问这个bean时,我在主应用程序中得到了默认值或空值,这表明这些属性没有持久化:

  • 问题内容: 假设您有两个数组: 您如何将数组a设置为数组b并使它们保持不同的对象?就像我想到的那样: 但这不起作用,因为它仅使“ a”引用数组b。因此,设置两个数组相等,同时保持它们独立的对象,以遍历一个数组的每个元素并将其设置为另一个数组的唯一方法是吗? 那ArrayList呢?当其中有对象时,如何将一个ArrayList设置为等于另一个? 问题答案: 您可能要使用: 或使用

  • 本文向大家介绍如何将src设置为来自另一个域的HTML中的img标签?,包括了如何将src设置为来自另一个域的HTML中的img标签?的使用技巧和注意事项,需要的朋友参考一下 要在网页上使用图像,请使用<img>标签。标签允许您添加图像源,高度,宽度,高度等。src用于添加图像URL。alt是替代文本属性,当图像无法加载时,该文本是可见的。使用HTML,将图像源添加为另一个域URL。为此,将src