Вам нужно использовать Redirect внутри рендера. Это React Component, который визуализирует, а затем отправляет пользователя по нужному пути:
import React, { Component } from "react";
import { Route, Switch, Redirect } from "react-router-dom";
class RootPage extends React.Component {
state = {
isLoggedOut: false
};
onClick = () => {
this.setState({
isLoggedOut: true
});
};
render() {
return (
<div>
{this.state.isLoggedOut && <Redirect to="/logout" />}
<button onClick={this.onClick}>Logout</button>
</div>
);
}
}
const Log = () => <h1>Logout</h1>;
class App extends Component {
render() {
return (
<div>
<nav className="navbar navbar" />
<Switch>
<Route exact path="/" component={RootPage} />
<Route exact path="/logout" component={Log} />
</Switch>
</div>
);
}
}
export default App;
Когда вы нажимаете кнопку выхода из системы, вы будете перенаправлены на rootPath.
Вот демоверсия: https://codesandbox.io/s/q9v2nrjnx4