I am rendering a Home component inside a Route so that I can pass state in as a prop to the component.
class App extends React.Component {
    constructor(props){
        super(props)
        this.state = {
            page: 'false'
        };
    }
    render() {
        return (
            <Router>
                <div>
                    <Switch>
                        <Route exact path='/' render={()=><Home page={this.state.page}/>} />
                        <Route exact path='/projects' component={Projects} />
                        <Route render={function(){
                            return <p>Not Found</p>
                        }} />
                    </Switch>
                </div>
            </Router>
        )
    }
}
Inside the Home component, I want to trigger a route change from a function. Because the Component is rendered inside the Route the history prop doesn't get passed in and therefore I cannot trigger a route change like so:
class Home extends React.Component{
    constructor(props){
        super(props);
        this.gotoProjects = this.gotoProjects.bind(this);
    }
    gotoProjects() {
        this.props.history.push('/projects');
    }
    render() {
        return (
            <button onClick={this.gotoProjects.bind(this)}>Projects</button>
        )
    }
}
How can I change routes from a component while still retaining it's props?
UPDATE I've created a History.js using createBrowserHistory
import { createBrowserHistory } from 'history'
export default createBrowserHistory()
And updated App.js to be
import history from '../history';
class App extends React.Component {
    constructor(props){
        super(props)
        this.state = {
            page: 'false'
        };
    }
    render() {
        return (
            <Router>
                <div>
                    <Switch>
                        <Route exact path='/' render={()=><Home history={history} page={this.state.page}/>} />
                        <Route exact path='/projects' component={Projects} />
                        <Route render={function(){
                            return <p>Not Found</p>
                        }} />
                    </Switch>
                </div>
            </Router>
        )
    }
}
So now when I click the button in Home the url goes to /projects but the view is still rendering Home instead of Projects. How do I render Projects after the history.push happens?
