Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在reactjs中访问父路由的道具_Reactjs_React Router - Fatal编程技术网

如何在reactjs中访问父路由的道具

如何在reactjs中访问父路由的道具,reactjs,react-router,Reactjs,React Router,反应路线上有路由 render( <Provider store={store}> <Router history={browserHistory}> <Route path='/' component={App}> <IndexRoute component={Home} /> <Route path='/products' component={Products}

反应路线上有路由

render(
<Provider store={store}>
    <Router history={browserHistory}>
        <Route path='/' component={App}>
            <IndexRoute  component={Home} />
            <Route path='/products' component={Products} />
            <Route path='*' component={NoMatch} />
        </Route>

    </Router>
</Provider>,
document.getElementById('root')
);
渲染(
,
document.getElementById('root'))
);
作为容器的智能应用程序组件

class App extends Component {
render() {

    return (
        <div className='page-content'>
            <Sidebar />

            <Content>
                {this.props.children}  // ---> Here output content from child routes
            </Content>

        </div>
    )
}
}
类应用程序扩展组件{
render(){
返回(
{this.props.children}/-->此处从子路由输出内容
)
}
}
这里是产品组件,我试图从中获取道具。产品来自应用程序容器。但是产品组件没有看到容器道具应用程序。我认为这是因为应用程序的级别更高

export default class Products extends Component {

constructor(props) {
    super(props)
}

loadProducts() {
    this.props.getProducts()
}

render() {
    console.log(this.props.products); // undefined

    return (
        <div>
           <h3>Products</h3>

        </div>
    )
}
}
导出默认类产品扩展组件{
建造师(道具){
超级(道具)
}
装载产品(){
this.props.getProducts()
}
render(){
console.log(this.props.products);//未定义
返回(
产品
)
}
}

在容器App中有props.products我查看了chrome开发工具。但是,如何将其传递给产品组件?

应用程序的级别要高出两级,但它是直接的父级。但是,如果您通过redux state获得应用程序内的道具组件,您可以使用mapStateToProps获得相同的产品内组件。或者,我认为您可以将
props
传递到
this.props.children
,如前所述。@ShubhamKhatri我认为这是解决我的问题的糟糕方法”)@saadq Thunk you,我找到了与您的链接可能重复的解决方案