react-router v5 –嵌套路由

安辛克

即使查看SO答案,我也无法弄清楚。我有一个看起来像这样的布局:

const Dashboard = (props) => (
  <div className={styles.views}>
    <Route
      to="/dashboard/reports/create"
      render={() => <ReportsForm {...props} />}
      exact
    />
    <Route
      to="/dashboard/reports"
      render={() => <Reports {...props} />}
      exact
    />
  </div>
);

const routes = [
  { path: '/', component: Home, exact: true },
  { path: '/dashboard', component: Dashboard },
  { path: '/about', component: About, exact: true },
  { path: undefined, component: Error404 },
];

const Routes = () => {
  return (
    <Switch>
      {routes.map((config, i) => {
        const key = `path-${config.path}`;
        return <Route key={key} {...config} />;
      })}
    </Switch>
  );
};
const App = compose(
  withRouter,
  connect(mapStateToProps),
)(() => {
  return (
    <Router history={history}>
      <IntlProvider>
        <Routes />
      </IntlProvider>
    </Router>
  );
})

我有一个仪表板组件,负责呈现多个选项卡,因此转到/dashboard/reports/create仅应渲染该ReportsForm组件,而转到/dashboard/reports仅应渲染该Reports组件。当前,两种情况下都渲染。

我究竟做错了什么?

编辑当我尝试match在仪表盘中打印道具时,它给了我–也许这会有所帮助:

{
  "path": "/dashboard",
  "url": "/dashboard",
  "isExact": false,
  "params": {}
}
里金

除了您指出要声明to而不是path

您可以将Dashboard组件包装RouteSwitch

const Dashboard = (props) => (
  <div className={styles.views}>
   <Switch>
    <Route
      path="/dashboard/reports/create"
      render={() => <ReportsForm {...props} />}
      exact
    />
    <Route
      path="/dashboard/reports"
      render={() => <Reports {...props} />}
      exact
    />
   </Switch>
  </div>
);

如果这样不起作用,您甚至可以使用以下初始路径将整个路径包装在Route中:

const Dashboard = props => (
  <div className={styles.views}>
    <Route path="/dashboard/reports">   // <------------------
      <Switch>
        <Route path="/dashboard/reports/create" render={() => <ReportsForm {...props} />} exact />
        <Route path="/dashboard/reports" render={() => <Reports {...props} />} exact />
      </Switch>
    </Route>
  </div>
);

这是我刚刚创建的工作示例解决方案:https : //stackblitz.com/edit/react-uih91e-router-nested?file=index.js

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Router V5:在动态路由中需要嵌套路由

来自分类Dev

React Router V5:在动态路由中需要嵌套路由

来自分类Dev

无法在React Router v5上打印嵌套路由的子组件

来自分类Dev

React Router v4 - 嵌套路由问题

来自分类Dev

react-router中的嵌套路由

来自分类Dev

React Router,在参数后嵌套路由

来自分类Dev

React Router,在参数后嵌套路由

来自分类Dev

使用React Router v4的嵌套路由-解决方案

来自分类Dev

在 react-router v4 中看到嵌套路由中的空白页

来自分类Dev

react-router 路由 <Link> v5

来自分类Dev

react-router-relay中的嵌套路由

来自分类Dev

在React-Router中找不到嵌套路由的字体

来自分类Dev

React Router 6 alpha 4嵌套路由

来自分类Dev

React Router Dom嵌套路由,或者如何传递

来自分类Dev

嵌套路由不适用于react-router

来自分类Dev

react-router-relay中的嵌套路由

来自分类Dev

无法使用React Router获得嵌套路由以进行匹配

来自分类Dev

React-Router嵌套路由不起作用

来自分类Dev

React Router-无法渲染嵌套路由

来自分类Dev

如何使React Router与静态资产,html5模式,历史API和嵌套路由一起使用?

来自分类Dev

react-router-创建没有组件嵌套的嵌套路由

来自分类Dev

React-Router:嵌套路由而不嵌套带有通配符路径的组件

来自分类Dev

React-Router:嵌套路由而不嵌套带有通配符路径的组件

来自分类Dev

如何使用 React Router - ReactJS 添加嵌套和非嵌套路由?

来自分类Dev

React Router:为什么嵌套路由使 React 在同一页面上呈现

来自分类Dev

如何使用react-router从嵌套路由的根目录重定向?

来自分类Dev

react-router的嵌套路由中的“ children”类型是什么?

来自分类Dev

React-Router活动类不适用于嵌套路由

来自分类Dev

在React Router中的嵌套路由中刷新后看到空白页

Related 相关文章

  1. 1

    React Router V5:在动态路由中需要嵌套路由

  2. 2

    React Router V5:在动态路由中需要嵌套路由

  3. 3

    无法在React Router v5上打印嵌套路由的子组件

  4. 4

    React Router v4 - 嵌套路由问题

  5. 5

    react-router中的嵌套路由

  6. 6

    React Router,在参数后嵌套路由

  7. 7

    React Router,在参数后嵌套路由

  8. 8

    使用React Router v4的嵌套路由-解决方案

  9. 9

    在 react-router v4 中看到嵌套路由中的空白页

  10. 10

    react-router 路由 <Link> v5

  11. 11

    react-router-relay中的嵌套路由

  12. 12

    在React-Router中找不到嵌套路由的字体

  13. 13

    React Router 6 alpha 4嵌套路由

  14. 14

    React Router Dom嵌套路由,或者如何传递

  15. 15

    嵌套路由不适用于react-router

  16. 16

    react-router-relay中的嵌套路由

  17. 17

    无法使用React Router获得嵌套路由以进行匹配

  18. 18

    React-Router嵌套路由不起作用

  19. 19

    React Router-无法渲染嵌套路由

  20. 20

    如何使React Router与静态资产,html5模式,历史API和嵌套路由一起使用?

  21. 21

    react-router-创建没有组件嵌套的嵌套路由

  22. 22

    React-Router:嵌套路由而不嵌套带有通配符路径的组件

  23. 23

    React-Router:嵌套路由而不嵌套带有通配符路径的组件

  24. 24

    如何使用 React Router - ReactJS 添加嵌套和非嵌套路由?

  25. 25

    React Router:为什么嵌套路由使 React 在同一页面上呈现

  26. 26

    如何使用react-router从嵌套路由的根目录重定向?

  27. 27

    react-router的嵌套路由中的“ children”类型是什么?

  28. 28

    React-Router活动类不适用于嵌套路由

  29. 29

    在React Router中的嵌套路由中刷新后看到空白页

热门标签

归档