(更新)V4
。あなたのコンポーネント小道具にrouter
、params
、location
、routes
を注入するためにwithRouter
HOCを使用することができます
class Child extends React.Component {
static propTypes = {
match: PropTypes.object.isRequired,
location: PropTypes.object.isRequired,
history: PropTypes.object.isRequired
}
render() {
const { match, location, history } = this.props
return (
<div>{location.pathname}</div>
)
}
}
export default withRouter(Child)
(更新)V3
。
class Child extends React.Component {
render() {
const { router, params, location, routes } = this.props
return (
<div>{location.pathname}</div>
)
}
}
export default withRouter(Child)
オリジナル答え
あなたが小道具を使用しない場合React Router documentation
まずで説明したように、あなたはコンテキストを使用することができ、あなたのchildContextTypes
とgetChildContext
を設定する必要があります
class App extends React.Component{
getChildContext() {
return {
location: this.props.location
}
}
render() {
return <Child/>;
}
}
App.childContextTypes = {
location: React.PropTypes.object
}
次に、あなたの場所オブジェクトにアクセスできますアプリケーションコンポーネントでこの
class Child extends React.Component{
render() {
return (
<div>{this.context.location.pathname}</div>
)
}
}
Child.contextTypes = {
location: React.PropTypes.object
}
出典
2016-05-30 10:44:48
QoP
のようなコンテキストを使用して、子コンポーネントには、直接のネストされた子コンポーネントは、ポインタのためthis.props.children –