2015-03-31 24 views
1

我使用的反應,路由器ES6類和它不斷拋出錯誤DefaultRoute拋出「不能調用類的函數」

Uncaught TypeError: Cannot call a class as a function

它指的是缺省路由的聲明。大部分代碼都是從react-router回購的例子中獲得的,這就是爲什麼我想知道爲什麼它是越野車。

import React from 'react'; 
import Router from 'react-router'; 

import {Header} from './components/Header.react.jsx'; 

var DefaultRoute = Router.DefaultRoute; 
var Link = Router.Link; 
var Route = Router.Route; 
var RouteHandler = Router.RouteHandler; 

var App = React.createFactory(React.createClass({ 
    render: function() { 
    return (
     <div> 
     <Header /> 
     <RouteHandler /> 
     </div> 
    ); 
    } 
})); 


var Inbox = React.createClass({ 
    render: function() { 
    return (
     <div> 
     test 
     </div> 
    ); 
    } 
}); 


var routes = (
    <Route name="app" path="/" handler={App}> 
    <DefaultRoute handler={Inbox}/> // ERROR 
    </Route> 
); 


Router.run(routes, Router.HistoryLocation, function (Handler) { 
    React.render(<Handler/>, document.body); 
}); 
+1

無論你是使用舊版本transpiler改造,或者使用的是舊版本的反應路由器的。 – FakeRainBrigand 2015-03-31 19:53:11

+0

我從tranceur切換到babelify和更新的react-router,現在它可以工作。 – johnny 2015-04-09 15:59:33

回答

1

你爲什麼包裝App組件的創建與createFactory電話嗎?

下面的作品只是我沒問題(我只是刪除Header,因爲它是外部):

import React from 'react'; 
import Router from 'react-router'; 


var DefaultRoute = Router.DefaultRoute; 
var Link = Router.Link; 
var Route = Router.Route; 
var RouteHandler = Router.RouteHandler; 

var App = React.createClass({ 
    render: function() { 
    return (
     <div> 
     <RouteHandler /> 
     </div> 
    ); 
    } 
}); 


var Inbox = React.createClass({ 
    render: function() { 
    return (
     <div> 
     test2 
     </div> 
    ); 
    } 
}); 


var routes = (
    <Route name="app" path="/" handler={App}> 
    <DefaultRoute handler={Inbox}/> // ERROR 
    </Route> 
); 


Router.run(routes, Router.HistoryLocation, function (Handler) { 
    React.render(<Handler/>, document.body); 
}); 
+0

你使用了什麼譯碼器? – johnny 2015-04-01 11:15:56

+2

[babelify](https://github.com/babel/babelify) – SM79 2015-04-01 11:46:49

相關問題