当我第一次使用react-router时,页面给出了下面的错误
React-router: type.toUpperCase不是函数
var React = require('react');
var Router = require('react-router');
var Route = Router.Route;
var App = React.createClass({
render: function() {
return (
<div>App</div>
);
}
});
React.render((
<Router>
<Route path="/" component={App} />
</Router>
), document.getElementById('app'));文件看起来没什么问题,有人能帮我吗?
哪里会出现错误?
function autoGenerateWrapperClass(type) {
return ReactClass.createClass({
tagName: type.toUpperCase(),
render: function() {
return new ReactElement(
type,
null,
null,
null,
null,
this.props
);
}
});
}发布于 2015-06-26 03:23:03
您发布的错误是隐秘的,但它意味着您正在尝试呈现一个不是真实组件的变量的组件。例如,您可以这样做,并得到相同类型的错误:
render: function() {
var Thing = {}; // not a component
return <Thing />; // same error
}在您发布的代码中,<Router>映射到一个是模块而不是组件的变量。你可以用一个新的变量声明来修复它:
var React = require('react');
var routerModule = require('react-router');
var Router = routerModule.Router; // component
var Route = routerModule.Route;
var App = React.createClass({
render: function() {
return (
<div>App</div>
);
}
});
React.render((
<Router>
<Route path="/" component={App} />
</Router>
), document.getElementById('app'));发布于 2015-08-02 19:28:02
我也收到了同样的错误。然后我发现我在导出我的组件时犯了错误。在一个组件中,我编写了module.export而不是module.exports。所以,请检查你是否犯了同样的错误。
发布于 2015-06-16 21:23:27
更改require语句:
var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;https://stackoverflow.com/questions/30868539
复制相似问题