2015-10-07 1 views
1

Я пытаюсь настроить React Router in Rails в первый раз. Ссылки на маршрутизаторе работают и изменяет хеш, как ожидалось, но он не отображает. Я сузил проблему с помощью отладчика и нашел следующее:Rails - React Router не поддерживает его props.children

  • MyRoutes (строка 22, до создания React создает маршрутизатор) имеет реквизиты.
  • Приложение (строка 6, при рендеринге) не имеет реквизита.

Что происходит?

var Route = ReactRouter.Route, 
    Link = ReactRouter.Link; 

var App = React.createClass({ 
    render: function(){ 
    //line 6 
    return (
     <div> 
     <h1>App</h1> 
     <ul> 
      <li><Link to="/todo">Todo</Link></li> 
      <li><Link to="/comment">Comment</Link></li> 
     </ul> 

     {this.props.children} 
     </div> 
    ) 
    } 
}) 

$(function(){ 
    var MyRoutes = (
    <Route path="/" handler={App}> 
     <Route path="/todo" name="todo" handler={TodoList} /> 
     <Route path="/comment" name="comment" handler={Comment} /> 
    </Route> 
); 
    //line 22 
    ReactRouter.run(MyRoutes, function (Handler) { 
    React.render(<Handler/>, $("#application").get(0)); 
    }); 
}) 
+0

Вы собираетесь решить эту проблему? У меня тоже проблема. Какую версию реактивного маршрутизатора вы используете? –

ответ

0

Я взглянул на репозиторий react-router-rails. Заменить this.props.children на <RouteHandler {...this.props}/>. Но помните, что вам нужно «импортировать» RouteHandler следующим образом: var RouteHandler = ReactRouter.RouteHandler;. Это должно решить.