react-router Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
react-router Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
我正在尝试使用 react-router 但是当我写一个简单的路由时不起作用并且控制台显示 Uncaught TypeError: Cannot read 属性 'toUpperCase' of undefined.
否则当我在没有运行良好的 react-router 的情况下使用时
var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var App = React.createClass({
render: function () {
return (
<div>Hello World</div>
);
}
});
React.render((
<Router>
<Route path="/" component={App} />
</Router>
), document.body);
错误来自反应库的这一行
function autoGenerateWrapperClass(type) {
return ReactClass.createClass({
tagName: type.toUpperCase(), //<----
render: function() {
return new ReactElement(
type,
null,
null,
null,
null,
this.props
);
}
});
}
我的猜测是当 React.render 执行时,路由器还不存在。试试这个
var routes = (
<Route handler={App}>
</Route>
);
Router.run(routes,(Root) => {
React.render(<Root/>, document.body);
});
尝试 <Route>
而不是 React.render()
中的 <Router>
。
我仍在思考 react-router,但我首先要检查的是您使用的版本和您引用的文档。我能够通过执行以下操作使其正常工作...
var React = require('react');
var ReactRouter = require('react-router');
var Route = ReactRouter.Route;
var App = React.createClass({
render: function () {
return (
<div>Hello World</div>
);
}
});
var routes = (
<Route handler={App}>
</Route>
);
window.onload = function() {
ReactRouter.run(routes, ReactRouter.HistoryLocation, function(Root, state) {
React.render(
<Root />,
document.getElementById('main')
)
});
};
基本上是 PhInside 所说的,但包含在 window.onload
中
您使用的示例来自 1.0 Beta 文档,但您可能 运行 最新的稳定版本 (0.13)。 master 中的文档来自 1.0 Beta,这就是混乱的根源。
阅读最新稳定版本的文档:https://github.com/ReactTraining/react-router/tree/master/docs
我正在尝试使用 react-router 但是当我写一个简单的路由时不起作用并且控制台显示 Uncaught TypeError: Cannot read 属性 'toUpperCase' of undefined.
否则当我在没有运行良好的 react-router 的情况下使用时
var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var App = React.createClass({
render: function () {
return (
<div>Hello World</div>
);
}
});
React.render((
<Router>
<Route path="/" component={App} />
</Router>
), document.body);
错误来自反应库的这一行
function autoGenerateWrapperClass(type) {
return ReactClass.createClass({
tagName: type.toUpperCase(), //<----
render: function() {
return new ReactElement(
type,
null,
null,
null,
null,
this.props
);
}
});
}
我的猜测是当 React.render 执行时,路由器还不存在。试试这个
var routes = (
<Route handler={App}>
</Route>
);
Router.run(routes,(Root) => {
React.render(<Root/>, document.body);
});
尝试 <Route>
而不是 React.render()
中的 <Router>
。
我仍在思考 react-router,但我首先要检查的是您使用的版本和您引用的文档。我能够通过执行以下操作使其正常工作...
var React = require('react');
var ReactRouter = require('react-router');
var Route = ReactRouter.Route;
var App = React.createClass({
render: function () {
return (
<div>Hello World</div>
);
}
});
var routes = (
<Route handler={App}>
</Route>
);
window.onload = function() {
ReactRouter.run(routes, ReactRouter.HistoryLocation, function(Root, state) {
React.render(
<Root />,
document.getElementById('main')
)
});
};
基本上是 PhInside 所说的,但包含在 window.onload
中您使用的示例来自 1.0 Beta 文档,但您可能 运行 最新的稳定版本 (0.13)。 master 中的文档来自 1.0 Beta,这就是混乱的根源。
阅读最新稳定版本的文档:https://github.com/ReactTraining/react-router/tree/master/docs