2

是否可以使用 React Route 执行以下操作?

主要的

  <Routes handler={App}>
    <Profile path="profile" />
    <Explore path="explore" />
  </Routes>

轮廓

    <Route>
      <Route name="dashboard" handler={ProfileDashboard} />
      <Route name="repos" handler={ProfileRepos} />
    </Route>

探索

    <Route>
      <Route name="home" handler={ExploreHome} />
      <Route name="showcase" handler={ExploreShowcase} />
    </Route>
4

1 回答 1

2

你可以使用 React Router 来实现!:)

但我建议您检查一下配置路线的“普通路线”方式:

https://github.com/ReactTraining/react-router/blob/v2.8.1/docs/guides/RouteConfiguration.md#configuration-with-plain-routes

使用它,您将开始使用一个routes对象,并且您可以只是require另一个路线并根据这些组合创建您的路线。像这样的东西:

const routes = {
    path: '/',
    component: App,
    childRoutes: [
        require('./profile'),
        require('./explore')
    ]
}

然后在你的profile.js(你可以对explore.js)文件中,你会得到类似的东西:

/* Import the ProfileDashboard and ProfileRepos here */

const profileRoutes = {
    path: 'profile',
    childRoutes: [{
        path: 'dashboard',
        component: ProfileDashboard
    }, {
        path: 'repos',
        component: ProfileRepos
    }]
};

这样你就可以实现你想要的。

如果你真的不能使用普通路线,你可以这样做:

<Route path="/" component={App}>
    { require('./profile') }
    { require('./explore') }
</Route>

而你的profile.js,例如:

module.exports = (
    <Route path="profile">
        <Route path="dashboard" component={ProfileDashboard} />
        <Route path="dashboard" component={ProfileRepos} />
    </Route>
);

我不知道您使用的是什么 React Router 版本,但您可以在任何版本中实现这一点,但作为建议,请尝试使用最新版本。因为它处理了很多很酷的东西。

希望能帮助到你!

于 2016-07-02T23:57:53.090 回答