React-Router v5 history.pu sh не запускает компонент - PullRequest
0 голосов
/ 11 февраля 2020

Извините, друзья, что спросили это снова. Я нашел пару решений для вопроса. Но они меня очень смутили. Я просто хочу попросить элегантный способ сделать это. Как вы понимаете по названию, у меня есть проблема с маршрутизацией на реакции. Позволь мне объяснить.

У меня есть кнопка с именем Login. После того, как я нажал на кнопку, я сделал логи c, затем я хочу перенаправить в другое представление.

Login.jsx (только часть истории)

  import { withRouter } from "react-router";
.
.
.
.
  const {history} = this.props;
  if (history) history.push("/home");

.
.
.
.
export default (withRouter(Login));

Приложение . js (ограниченная часть)

import {withRouter} from 'react-router';
import {BrowserRouter as Router, Route, Switch} from "react-router-dom";
.
.
.
.
.
<div className={'container-fluid'}>
                <Router>

                    <Route path="/login" exact component={Login}/>

                    {(showMe && !pathLogin) &&
                    <Header maximize={maximize}/>
                    }
                    {(showMe && !pathLogin) &&
                    <div className="row h-100">
                        <Sidebar maximize={maximize}/>

                        <Switch>
                            <Route path="/home" exact component={Home}/>
                            <Route path="/somepage" exact component={Somepage}/>
                        </Switch>
                    </div>
                    }
                </Router>
            </div>
.
.
.
.
export default (withRouter(App));

Эта структура работает нормально. Когда я запускаю приложение, страница входа появляется в первом состоянии. Затем я нажимаю кнопку входа, путь к браузеру меняется, но вид не отображается. Если я нажимаю кнопку браузера refre sh после входа в систему. Рендеринг страницы правильно. После этого в следующий раз, пока я не нажму на кнопку refre sh в браузере, все работает нормально. Если кто-то даст мне совет, я буду очень признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...