首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-router: type.toUpperCase不是函数

React-router: type.toUpperCase不是函数
EN

Stack Overflow用户
提问于 2015-06-16 21:09:45
回答 5查看 16.5K关注 0票数 20

当我第一次使用react-router时,页面给出了下面的错误

React-router: type.toUpperCase不是函数

代码语言:javascript
复制
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'));

文件看起来没什么问题,有人能帮我吗?

哪里会出现错误?

代码语言:javascript
复制
function autoGenerateWrapperClass(type) {
    return ReactClass.createClass({
      tagName: type.toUpperCase(),
      render: function() {
        return new ReactElement(
          type,
          null,
          null,
          null,
          null,
          this.props
        );
      }
    });
  }
EN

回答 5

Stack Overflow用户

发布于 2015-06-26 03:23:03

您发布的错误是隐秘的,但它意味着您正在尝试呈现一个不是真实组件的变量的组件。例如,您可以这样做,并得到相同类型的错误:

代码语言:javascript
复制
render: function() {
  var Thing = {};  // not a component
  return <Thing />;  // same error
}

在您发布的代码中,<Router>映射到一个是模块而不是组件的变量。你可以用一个新的变量声明来修复它:

代码语言:javascript
复制
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'));
票数 33
EN

Stack Overflow用户

发布于 2015-08-02 19:28:02

我也收到了同样的错误。然后我发现我在导出我的组件时犯了错误。在一个组件中,我编写了module.export而不是module.exports。所以,请检查你是否犯了同样的错误。

票数 17
EN

Stack Overflow用户

发布于 2015-06-16 21:23:27

更改require语句:

代码语言:javascript
复制
var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30868539

复制
相关文章

相似问题

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