首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >react-router未捕获TypeError:无法读取未定义的属性“”toUpperCase“”

react-router未捕获TypeError:无法读取未定义的属性“”toUpperCase“”
EN

Stack Overflow用户
提问于 2015-06-23 06:13:11
回答 4查看 11.7K关注 0票数 17

我正在尝试使用react-router,但当我编写一条简单的路由时,它不能工作,控制台显示Uncaught : Cannot read property '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);

该错误来自react库的此行

function autoGenerateWrapperClass(type) {
  return ReactClass.createClass({
    tagName: type.toUpperCase(), //<----
    render: function() {
      return new ReactElement(
        type,
        null,
        null,
        null,
        null,
        this.props
      );
    }
  });
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-18 20:38:17

您使用的是1.0 Beta文档中的示例,但您可能运行的是最新的稳定版本(0.13)。master中的文档来自1.0测试版,这是造成混淆的原因。

阅读文档以获取最新的稳定版本:https://github.com/ReactTraining/react-router/tree/master/docs

票数 16
EN

Stack Overflow用户

发布于 2015-06-23 06:48:46

我的猜测是当React.render被执行时,路由器还不在那里。尝尝这个

 var routes = (
  <Route handler={App}>
  </Route>
);

Router.run(routes,(Root) => {
  React.render(<Root/>, document.body);
});
票数 1
EN

Stack Overflow用户

发布于 2015-07-05 01:00:25

我还在考虑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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30990726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档