Вы импортировали BrowserRouter, но не использовали его.Поскольку вы импортировали не в то место. Вам нужно использовать его в index.js.
Component BrowserRouter оборачивает объект истории в браузере и передает его в дерево компонентов.В любом месте дерева компонентов вы сможете использовать объект истории.
Index.js
import { BrowserRouter } from "react-router-dom";
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById("root")
);
Если вы используете «this» внутри функции, это будет указывать на глобальный объект, который является «окном» в браузере.
function logOut() {
if (true) {
localStorage.clear();
this.props.history.push('/Signin');
}
}
В этом фрагменте this.props.history.push = windows.props.history.push Поскольку в глобальной среде вы не определили объект «props», он вернет undefined.
Решение использует функцию стрелки.Функция стрелки использует значение this, содержащее функцию.
logout=()=>{if (true) {
localStorage.clear();
this.props.history.push('/Signin');
}}
Вам даже не нужно использовать
If(true)
Вам также необходимо создать страницу входа и зарегистрировать маршрут.Обычно мы регистрируем маршруты в app.js
import { Route } from "react-router-dom";
<Route path="/not-found" component={NotFound} />
<Route path="/signin" exact component={signin} />
<Redirect to="/not-found" />
Здесь я также зарегистрировал не найденный маршрутизатор. Это базовая реализация для обработки 404 страниц.Вам необходимо создать не найденный компонент.