获取不变冲突:使用带反应路径的reactBrowserHistory时,元素类型无效

时间:2015-11-29 01:05:51

标签: javascript reactjs react-router

我使用React创建单页应用程序。在这里,使用React-router时,我无法找到使用历史记录的正确方法。我尝试过以下使用方法:

var React = require('react');
var ReactRouter = require('react-router');
var createBrowHistory = require('history/lib/createBrowserHistory');
var Router = ReactRouter.Router;
var Route =  ReactRouter.Route;
var Content = require('./default-content');

module.exports = (
   <Router history={createBrowHistory()}>
      <Route path="/" component={Content}>
      </Route>
   </Router>
)

但是,我收到以下错误:

Warning: React.createElement: type should not be null or undefined. It should be a string (for DOM elements) or a ReactClass (for composite components).
Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

注意:我使用的是gulp,browserify,React @ 0.14.3,React roter @ 1.0.0,history @ 1.13.1 请帮我解决上述错误。感谢。

1 个答案:

答案 0 :(得分:1)

我不确切知道您发布的代码周围的代码,但是做了一些猜测,我会说如果您将代码更改为:

Department

那会有用。

我猜你在其他地方需要你的代码并把它放在var MyRouter = React.createClass({ render: function() { return (<Router history={createBrowHistory()}> <Route path="/" component={Content}> </Route> </Router>); } }); module.exports = MyRouter 函数中。问题是您没有导出React类,而是导出React元素。这是从您的代码生成的Javascript:

React.createElement

如果您发布其他文件,我可以更好地解释: default-content.js main.js