I'm not sure if I'm using a HOC correctly but I have state at the top app level which needs to be updated from a child components that exists in a HOC.
my main app router that holds the state
class AppRouter extends React.Component {
  state = {
    selected: "",
  };
  updateSelected = selected => {
    this.setState({ selected });
  };
  updateReports = reports => {
    this.setState({ reports });
  };
  render() {
    return (
      <Router history={history}>
        <div>
          <div className="holygrail">
            <Header setIsAuth={this.setIsAuth} isAuth={this.state.isAuth} />
            <Switch>
              <PublicRoute
                path="/login"
                isAuth={this.state.isAuth}
                component={() => <Login setIsAuth={this.setIsAuth} />}
                exact={true}
              />
              <PrivateRoute
                path="/"
                selected={this.state.selected}
                isAuth={this.state.isAuth}
                updateSelected={this.updateSelected}
                updateReports={this.updateReports}
                component={Dashboard}
                exact={true}
              />
              <Route component={NotFound} />
            </Switch>
          </div>
        </div>
      </Router>
    );
  }
}
export default AppRouter;
I have a PrivateRoute that then has a template which include a nav that should not be shown on a PublicRoute
export const PrivateRoute = ({ component: Component, isAuth, ...rest }) => (
  <Route
    {...rest}
    render={props => {
      console.log("Private Route ", isAuth);
      return isAuth ? (
        <div className="holygrail-body">
          <Nav
            updateSelected={this.updateSelected} <-- how to pass these back up to AppRouter parent?
            updateReports={this.updateReports}
          />
          <Component {...props} />
        </div>
      ) : (
        <Redirect
          to={{
            pathname: "/login",
            state: { from: props.location }
          }}
        />
      );
    }}
  />
);
export default PrivateRoute;
How do I pass the Nav props to update the main component state.
