React-router-将当前路由设置为最后一条路由

时间:2018-09-19 18:52:43

标签: reactjs react-router

这是一个非常简单的问题,但是如何将视图更新为路线列表中的最后一个元素?

现在,我正在向路由器传递一系列路由,但默认情况下会将当前路由设置为首页。有没有办法将其设置为路由数组的最后一个元素?

breadcrumbRoutes: [
    {
      path: '/',
      exact: true,
      name: "Device Policies",
      main: () => <h2>Device Policies View</h2>
    },
    {
      path: '/controlPanel',
      exact: true,
      name: "Control Panel",
      main: () => <h2>Control Panel View</h2>
    },
    {
      path: '/settings',
      exact: true,
      name: "Settings",
      main: () => <h2>Settings View</h2>
    }
  ]

我想将当前视图设置为设置页面,因为我的面包屑看起来像这样Device Policies/Control Panel/Settings

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这并不是反应路由器的工作原理。没有“默认”视图。如果用户导航到您应用的/路径,则他们将看到“设备策略”组件。如果他们导航到/settings路径,他们将看到“设置视图”组件。等

这里的另一个问题是,您的路线未设置为具有您所描述的面包屑。您没有Device Policies/Control Panel/Settings路线。您有三个分开的路由://controlPanel/settings。如果要使用/controlPanel/settings路由,则需要将控制面板路由嵌套在根/路由内部,并将设置路由嵌套在那个路由内部。

如果您确实有一条/controlPanel/settings路线,那么您可以使“默认”路线成为在/路线下呈现一个指向{的<Redirect>组件的方式。 {1}}。然后,您可能会有一个/controlPanel/settings路线或类似路线,即您的实际主页/仪表板。这样,当用户尝试转到/home时,他们将被发送到设置页面,但是您可以提供指向/路由的链接,该链接不会将他们重定向到任何地方(否则将无法如果/home 总是重定向到设置,则有一个“主页”页面!)