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="/" handler={App}></Route>
</Router>
), document.getElementById('app'));
就简单使用router就报错了type.toUpperCase is not a function
是这段函数里的报错,是router食用姿势不对?
function autoGenerateWrapperClass(type) {
return ReactClass.createClass({
tagName: type.toUpperCase(),
render: function() {
return new ReactElement(
type,
null,
null,
null,
null,
this.props
);
}
});
}
自己写完一个标签之后最后要有一句:module.exports = …………
不确定, 我在项目中遇到这个报错一般是缺少 createFactory
导致的,
一般 createClass
构造之后需要再 createFactory
, 然后才能执行的.
我在 CoffeeScript 直接用的话, 很容易遇到这样的错误.
到 Router 里边复杂一点吧, 感觉官方改个不停.. 看下这个写法有没有用?
https://github.com/rackt/react-router/blob/master/examples/master-deta...
var React = require('react');
var Router = require('react-router');
var Route = Router.Route;
改成
var React = require('react');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
另外如果现在升级到 react 0.14.x 后 需要
var ReactDOM = require('react-dom');
最后的 React.render 改成 ReactDOM.render();