如何将道具传递给Link(ed)到react-router组件

时间:2015-10-07 11:36:42

标签: javascript reactjs react-router

我制作的每个React应用程序(实际上只有一个小的)使用actions up, data down方法,其中(据我所知)组件通过调用this.props.somePropertyName从父组件接收数据。我现在正在尝试react-router and none of the examples given似乎让子组件通过props接收数据,而且从我看到的情况来看,没有很容易将道具传递给子组件(除了{{ 1}}。在下面的示例中,我将一个端点从App传递给HomePage组件。在HomePage组件中,我获取数据(博客帖子列表)并希望将单个帖子传递给PostDetail组件(作为但是我不能这样做。我不想使用react-router“params”传递所有数据,因为在params中传递的任何内容都会在url中结束。

问题:在下面的代码中,如何将数据传递给链接到PostDetail组件,因此我可以在PostDetail组件中调用<RouteHandler/>之类的内容?

this.props.postBody

问题:如何将数据传递给链接到PostDetail组件,因此我可以在PostDetail组件中调用var App = React.createClass({ render: function(){ return ( <div> <RouteHandler source="/my-api-data-source/"/> </div> ) } }) var routes = ( <Route name="main path="/" handler={App}> <DefaultRoute name="homepage" handler={HomePage}> <Route name="post" path=":postId" hander={PostDetail}> </Route> ) var HomeComponent = React.createClass({ componentDidMount: function(){ $.get(this.props.source, function (result){ if(this.isMounted()){ this.setState({ posts: result }) } } } render: function(){ return ( //code omitted --I loop through posts array to create a list of links to posts like this <ul> <li>Link to "post" params={postId: somePostId}>post.title</li> <li>Link to "post" params={postId: somePostId}>post.title</li> <li>Link to "post" params={postId: somePostId}>post.title</li> </ul> ) } }) 之类的内容? (另外,想象一下我有几条不同的路线,并希望将不同的道具传递到不同的路线)

this.props.postBody

请注意,我的问题不是this question的重复,因为我的问题中的var PostDetail = React.createClass({ render: function(){ return ( <div> <h2>want to call `this.props.title` here </h2> want to call `this.props.postBody` here want to call `this.props.postComments` here etc </div> ) } )} 来自HomePage路由,即我无法将PageDetail组件与HomePage组件包装为一种方式将主页中的道具传递给PageDetail(正如我链接的SO答案所示)

0 个答案:

没有答案