2015-09-27 33 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; 

現在路由器已經正確定義了。這對我來說很有效。試一試。

相關問題