2015-02-24 4 views
0

Я пытаюсь передать некоторые параметры моему компоненту из React Router, но по какой-то причине параметры перестают присутствовать после рендеринга компонента.Компонент React не получает реквизит

Вот мой код:

Маршрутизатор:

var routes = (
    <Route handler={require('components/forum-app')}> 
     <DefaultRoute  handler={require('components/post-list')}/> 
     <Route name='posts' handler={require('components/post-list')}/> 
     <Route name='post' handler={require('components/post')}  path='/post/:postId'/> 
    </Route> 
); 

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

Сообщение Компонент:

var Post = React.createClass({ 
    render: function() { 
     console.log(this.props); 
     return (
      <div> 
      </div> 
     ); 
    } 
}); 

Когда я посещаю маршрут #/post/post-1, пост вынести метод выводит пустой объект. Я проверил и убедился, что переменная options в обратном вызове Router.run имеет свойства.

Любая помощь была бы принята с благодарностью.

ответ

6

Ваш класс Post вложен в класс forum-app. Поэтому вы также должны передать свойства от вашего класса forum-app его вложенным компонентам:

<Router.RouteHandler {...this.props}/> 
+0

Спасибо. Я не знаю, как я этого не заметил. – SimpleJ

Смежные вопросы