【问题标题】:React-router Uncaught TypeError: type.toUpperCase is not a functionReact-router Uncaught TypeError: type.toUpperCase 不是函数
【发布时间】:2015-09-27 19:37:46
【问题描述】:

我正在使用最新版本的 react、react-router、gulp 和 browserify 我在 beowser 控制台中得到了这个: 未捕获的 TypeError:type.toUpperCase 不是函数

我在 app.js 中的代码:

"use strict";
var React = require('react');
var Router = require('react-router');
var Header = require('./components/Header');
var Index = require('./components/Index');
var About = require('./components/About')
var Route = Router.Route;
var IndexRoute  = Router.IndexRoute ;


var App = React.createClass({
  render: function(){
    return (
      <div>
        <Header />
        <div>
          {this.props.children}
        </div>
      </div>
    );
  }
})
React.render(<Router><Route path="/" component={App}>
<IndexRoute  component={Index}/>
<Route path="about" component={About}/>
</Route>
</Router>, document.getElementById('app'));

【问题讨论】:

  • 你能显示产生错误的实际代码吗?这些代码都不会直接导致该错误。
  • 这一切都与 react-router 和 组件有关,因为当我从 React.render 函数中删除 组件并将其替换为像
    这样的任何其他组件时,代码可以工作很好。
  • 再一次,我必须看到实际的代码抛出错误来告诉你任何事情。

标签: javascript reactjs gulp browserify react-router


【解决方案1】:

只需将您的 react 路由器版本从 0.0.13 升级到 1.0.0-rc1(beta),因为下面的代码仅适用于 change log 中提到的 1.0.0 beta 版本。

React.render(<Router><Route path="/" component={App}>
<IndexRoute  component={Index}/>
<Route path="about" component={About}/>
</Route>
</Router>, document.getElementById('app'));

升级版本后,你必须像下面这样正确声明路由器。

var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter .Router;
var Route = ReactRouter .Route;

现在路由器已正确定义。这对我有用..试试看。

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 2019-11-06
    • 2017-09-18
    • 2020-06-05
    相关资源
    最近更新 更多