React-router Uncaught TypeError:type.toUpperCase不是函数
我正在使用最新版本的react,react-router,gulp和browserify
我在beowser console中得到了这个:
Uncaught TypeError:type.toUpperCase不是函数
I'm using the latest version of react, react-router, gulp and browserify I got this in beowser console: Uncaught TypeError: type.toUpperCase is not a function
我的代码在app.js中:
my code in 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.13升级到1.0.0-rc1(beta)因为下面的代码只适用于1.0.0 beta版本,它在 change log 。
Just upgrade your react router version from 0.0.13 to 1.0.0-rc1(beta) coz the below code will only work for 1.0.0 beta version which is mentioned in change log.
React.render(<Router><Route path="/" component={App}>
<IndexRoute component={Index}/>
<Route path="about" component={About}/>
</Route>
</Router>, document.getElementById('app'));
升级版本后,您必须正确地声明路由器。
After upgrading version you have to declare router properly like below.
var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter .Router;
var Route = ReactRouter .Route;
现在路由器已被正确定义。这对我来说很有效。试试看。
Now router is defined properly. This worked for me..give a try.