2015-02-24 93 views
0

我試圖從React路由器傳遞一些參數給我的組件,但由於某些原因,組件渲染後參數不再存在。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,在後期渲染方法打印一個空對象。我已經檢查並確保Router.run回調中的options變量具有屬性。

任何幫助將不勝感激。

回答

6

您的Post類嵌套在forum-app類中。因此你也應該通過從forum-app類屬性,將其嵌套組件:

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

謝謝。我不知道我沒有注意到這一點。 – SimpleJ 2015-02-24 00:38:31