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

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

自己写完一个标签之后最后要有一句: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();

【热门文章】
【热门文章】