2015-06-24 3 views
2

Я пытаюсь выяснить React Router, но когда я загружаю страницу, я вижу только пустой тег сценария, который отображается. Я должен делать что-то неправильно. Я пошел по руководству на странице документов с ретрансляторами.React Router Renders Empty Script Tag

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

var About = require('./About'); 
var Inbox = require('./Inbox'); 

var routes = (
    <Route handler={App}> 
    <Route path="about" handler={About}/> 
    <Route path="inbox" handler={Inbox}/> 
    </Route> 
); 

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

Router.run(routes, Router.HashLocation, (Root) => { 
    React.render(<Root/>, document.getElementById('app')); 
}); 

ответ

2

Я понял. Мне нужно было перевести мои маршруты ниже Приложения примерно так:

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

var About = require('./About'); 
var Inbox = require('./Inbox'); 

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

var routes = (
    <Route handler={App}> 
    <Route path="about" handler={About}/> 
    <Route path="inbox" handler={Inbox}/> 
    </Route> 
); 

Router.run(routes, Router.HashLocation, (Root) => { 
    React.render(<Root/>, document.getElementById('app')); 
}); 
+4

Точнее, вам нужно поместить использование 'App' под определение' App'. –