react-router报错type.toUpperCase is not a function

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
          );
        }
      });
    }
阅读 8.7k
3 个回答

不确定, 我在项目中遇到这个报错一般是缺少 createFactory 导致的,
一般 createClass 构造之后需要再 createFactory, 然后才能执行的.
我在 CoffeeScript 直接用的话, 很容易遇到这样的错误.

到 Router 里边复杂一点吧, 感觉官方改个不停.. 看下这个写法有没有用?
https://github.com/rackt/react-router/blob/master/examples/master-deta...

新手上路,请多包涵

自己写完一个标签之后最后要有一句:module.exports = …………

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();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题