将数据通过React Router传递给组件

时间:2016-10-25 16:58:45

标签: reactjs redux react-router react-redux

我正在努力与react / redux做任何事情。

我最后的挑战之一是将一些数据从子组件传递到父组件。我无法通过调用parentComponent.props.children.props来获取子props(我也尝试使用React.Children.toArray将子节点转换为Array)然后我找到了解决某些特定问题的解决方案React Router附带的数据。

我设法通过调用Parent Component中的this.props.location.pathname来找出子组件。

我有一个路由结构如下

<Router history={history}>
      <Route path="/main" component={Main}>
        <Route path="something" component={Something} />   
      </Route>
</Router>

我想知道是否可以在此声明中将一些数据传递给Main。类似的东西:

<Route path="something" component={Something} data={foo: 'myData'} />

foo

中获取Main.render

有什么东西接近这个吗?

2 个答案:

答案 0 :(得分:2)

您可以将'myData'作为查询参数传递。这是我个人喜欢使用React Router将道具传递给组件。然后,当您浏览到/main/something?foo=myData时,您可以从foo访问this.props.location.query.foo

答案 1 :(得分:1)

您传递给路径定义的任何道具都可以在道具中的路径节点下访问。在您的Something组件中,应该能够使用_rectangleList

获取数据支柱