2015-09-27 48 views
0

我正在使用最新版本的react,react-router,gulp和browserify 我在beowser console中得到了这个: Uncaught TypeError:type.toUpperCase不是功能React-router Uncaught TypeError:type.toUpperCase不是函数

我的代码在app.js:

"use strict"; 
var React = require('react'); 
var Router = require('react-router'); 
var Header = require('./components/Header'); 
var Index = require('./components/Index'); 
var About = require('./components/About') 
var Route = Router.Route; 
var IndexRoute = Router.IndexRoute ; 


var App = React.createClass({ 
    render: function(){ 
    return (
     <div> 
     <Header /> 
     <div> 
      {this.props.children} 
     </div> 
     </div> 
    ); 
    } 
}) 
React.render(<Router><Route path="/" component={App}> 
<IndexRoute component={Index}/> 
<Route path="about" component={About}/> 
</Route> 
</Router>, document.getElementById('app')); 
+0

你能显示产生错误的实际代码吗?这些代码都不会直接导致该错误。 –

+0

这是关于react-router和组件的原因,因为当我从React.render函数中删除组件并将其替换为

之类的任何其他组件时,代码工作正常。 –

+0

再次,我将不得不看到实际的代码抛出错误告诉你什么。 –

回答

0

只要升级你的路由器版本反应从0.0.13到1.0.0-RC1(测试版)怎么把下面的代码将仅适用于1.0.0工作beta版本在change log中提到。

React.render(<Router><Route path="/" component={App}> 
<IndexRoute component={Index}/> 
<Route path="about" component={About}/> 
</Route> 
</Router>, document.getElementById('app')); 

升级版本后,您必须像下面那样正确声明路由器。

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Router = ReactRouter .Router; 
var Route = ReactRouter .Route; 

现在路由器已经正确定义了。这对我来说很有效。试一试。