Use withRouter To Pass Down React-Router History
A standard way to navigate with
react-router besides using
the Link component is to call history.push. Components that are directly
rendered by a Route will have access to this and other router props. But
what about other components?
The withRouter HOC gives us direct access to a history prop.
import React from 'react';
import { withRouter } from 'react-router';
const SpecialButton = withRouter(({ history, path, text }) => {
return (
<Button
onClick={() => { history.push(path); }}
>
{text}
</Button>
)
});
This special button component is given the history prop via the
withRouter HOC along with any props that we directly pass it. With that
we are able to directly invoke a route change using history.push().