How do you get the routing context, location, params, etc, when using withRouter()?
import { withRouter } from 'react-router';
const SomeComponent = ({location, route, params}) => (
<h1>The current location is {location.pathname}</h1>
);
const ComposedWithRouter = withRouter(SomeComponent);
Can you obtain that info using withRouter or do these things have to be explicitly passed down the component tree?
So, no using context
anymore. It's all available in the props:
SomeComponent.propTypes = {
location: React.PropTypes.shape({
pathname: React.PropTypes.string,
query: React.PropTypes.shape({
...
})
}),
params: React.PropTypes.shape({
...
}),
router: React.PropTypes.object
}
const ComposedWithRouter = withRouter(SomeComponent);
So then lets say in SomeComponent
you wanted to send the user to a new route, you simply do this.props.router.push('someRoute')
Getting location etc. via withRouter was added in react-router version 2.7. Dan Abramov recommends upgrading to 3.0 to use withRouter. Before 2.7, it only provided a set of functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With