如何在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,我找到了与您的链接可能重复的解决方案