javascript - 如何在 react 路由器中将子路由定义为 react 组件?

标签 javascript reactjs react-router

我有main.js:

import { render } from 'react-dom';
import { browserHistory, Router, Route, IndexRoute } from 'react-router';

import Home from './containers/Home';
import ApplicationsRoutes from './applications/routes';

render((
  <Router history={browserHistory}>
    <Route path="/" component="div">
      <IndexRoute component={Home} />      
      <ApplicationsRoutes />
    </Route>
  </Router>
), document.getElementById('app'));

/application/routes.js:

import { browserHistory, Router, Route, IndexRoute } from 'react-router'

import ApplicationsHome from './containers/ApplicationsHome';

export default () => (
  <Route path="applications" component={ApplicationsHome} />
);

我期望来自 /application/routes.js 的路由将被添加到主路由器,因此 ApplicationsHome 将为路径 /applications 呈现

不幸的是,事实并非如此。我收到错误:

Location "/applications" did not match any routes

对我来说,这样组成 Router 的方法似乎行不通,但我不明白什么是正确的方法。

最佳答案

一般来说,当你这样做时,你应该考虑使用PlainRoute语法而不是JSX语法,然后在父路由上使用getChildRoutes来解析子路由,根据 huge-apps 示例:https://github.com/rackt/react-router/tree/master/examples/huge-apps

这将使您可以轻松配置代码拆分和动态路由。

关于javascript - 如何在 react 路由器中将子路由定义为 react 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35018327/

相关文章:

javascript - 转换后向用户显示文件

javascript - 匹配的路由在路由哈希更改时不会更改

javascript - 使用 React.js 根据页面路径在网站页脚上显示不同的 CTA 按钮

javascript - Phonegap (Android) - 数据库更改版本不起作用

javascript - 自定义数据原型(prototype) symfony3

javascript - 正则表达式测试 url 和文件路径的重复词

javascript - React 不能正确重定向

javascript - 将路径参数传递给 React 上下文提供者

reactjs - 具有通用初始类型的高阶组件

ios - React Native map 上的标记单击事件在 React iOS 中不起作用