В React, как правильно программно перейти на новый маршрут / страницу? - PullRequest
1 голос
/ 19 апреля 2019

Я пытался найти прямой ответ на этот вопрос, и даже после поиска StackOverflow я не могу найти правильный ответ для текущей версии React.

В моем случае у меня есть следующеесценарий - пользователь устанавливает свои данные, отправляет их на сервер и в рамках моего метода Save(), если операция сохранения прошла успешно, я хочу перенаправить их на корневую домашнюю страницу.

Большая частьВ документации, которую я нашел, упоминается использование this.props.history.push(...) для продвижения по новому маршруту.Однако что-то изменилось с React 4.0.0+, и теперь history не определено на странице реквизита.

Я не обязательно заинтересован в том, чтобы выдвигать новый маршрут к объекту истории, если это устаревший способмаршрутизация на другую страницу.Тем не менее, все более свежие примеры, которые я нашел, говорят о настройке маршрутов и ссылок в JSX.Это нормально, но мне еще предстоит найти способ программно перенаправить страницу при определенных условиях кода.

Извиняюсь, если уже есть ответ, но я не нашел прямого ответа.

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Маршрутные реквизиты предоставляются только тем компонентам, которые используются для реквизитов component или render компонентов Route.

Если вы хотите использовать реквизиты маршрута в любом другом компоненте вашего приложения, вам нужно передать реквизиты вручную или использовать withRouter HOC.

import { withRouter } from "react-router-dom";

// ...

export default withRouter(MyComponent);
0 голосов
/ 19 апреля 2019

Вы должны подключить этот компонент к маршрутизатору.Для подключения необходимо использовать роутер.

export default withStyles(commonModalStyle)(withRouter(connect(mapStateToProps, mapDispatchToProps)(NewOrUpdateModal)));

Пожалуйста, укажите это

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