Для того, чтобы правильно использовать историю, вам необходимо иметь компонент приложения Router wrapping App вверху иерархии. Поскольку вы визуализируете маршрутизатор в компоненте приложения, он не может прослушивать изменения истории, поскольку история, предоставленная useHistory, не относится к истории, используемой маршрутизатором, если компонент приложения не упакован маршрутизатором.
Не отображать Router внутри компонента App
Также вы визуализировали Router как компонент Switch внутри компонента App, вместо этого вы должны импортировать точный компонент Switch из react-router-dom
Проверьте обновленный код ниже
import {
BrowserRouter as Router,
Switch
useHistory,
Route,
useLocation,
} from "react-router-dom";
const App = ({ confirmAuthentication }) => {
let location = useLocation();
let history = useHistory();
useEffect(() => {
async function fetchIt() {
if (localStorage.jwt !== undefined) {
confirmAuthentication();
}
}
fetchIt();
if (location.pathname === "/") {
history.push("lead-manager");
}
}, []);
return (
<div>
<Switch>
<Route exact path="/testing">
<TestingComponent />
</Route>
<PrivateRoute path="/lead-manager" component={LeadApp} />
<Route exact path="/login">
<LoginView />
</Route>
</Switch>
</div>
);
}
export default (props) => <Router><App {...props}/></Router>