react-router发出警告然后不起作用

时间:2016-08-07 23:16:14

标签: react-router

出于某种原因,我从

获得了铬的投诉
import React from 'react';
import {Route, DefaultRoute} from 'react-router';
import App from "components/app"
import FindView from "components/find";
import RememberView from "components/remember";
import MetaView from "components/meta";
import ExploreView from "components/explore";

export default (
  <Route name='pkm' path='/' handler={App}>
   <DefaultRoute handler={RememberView} />
   <Route name="remember" handler={RememberView} />
   <Route name="find" handler={FindView} />
   <Route name="meta" handler={MetaView} />
   <Route name="explore" handler={ExploreView} />
 </Route>
);

在DefaultRoute行看起来像 React.createElement:type不应为null,undefined,boolean或number。它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件。

我不知道为什么会这样。我在ES6使用中看到的所有路由器示例都与此类似。我错过了什么?

当我试图运行它时,我发现它不知道路由器是什么?

import React from 'react';
import ReactDOM from 'react-dom'
import Router from 'react-router';
import routes from './routes';
import App from 'components/app'

Router.run(routes, Router.HistoryLocation, (App, state) => {
  ReactDOM.render(<App {...state}/>,      document.getElementById('content'));
});

module.js:8Uncaught TypeError:无法读取属性&#39;运行&#39;未定义的。

所以我显然没有得到什么。

2 个答案:

答案 0 :(得分:0)

您使用的是哪种版本的react-router?在最新版本中,路由器模块没有定义运行功能。

在最新版本中,配置如下

ReactDOM.render(
  <Router routes={routes} />
, document. getElementById('content'))

有关详细信息,请参阅documentation

答案 1 :(得分:0)

是。我是在一个更新的版本。我根据反应路由器文档的github重新编写代码并解决了问题。