我试图从React Router向我的组件传递一些参数,但是由于某种原因,一旦呈现组件,这些参数就不再存在。

这是我的代码:

路由器:

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时,post render方法将打印一个空对象。我已经检查并确保options回调中的Router.run变量具有属性。

任何帮助将不胜感激。

最佳答案

您的Post类嵌套在forum-app类中。因此,您还应该将属性从forum-app类传递到其嵌套组件:

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

关于javascript - React组件没有收到 Prop ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28685936/

10-12 01:14
查看更多