React-router: изменить URL-адрес и очистить историю
У меня есть следующий сценарий:
Пользователь открывает ссылку активации; после того как пользователь завершит процесс активации, система переместит его на другую страницу.
Я не хочу сохранять ссылку активации в истории браузера, потому что когда пользователь вернется, он снова перейдет к шагу активации.
Как заменить историю браузера, чтобы удалить определенные запросы из моего приложения?
Ответы
Ответ 1
В реакции JS вы должны использовать browserHistory
для этой цели. Это заботится о вас истории, и вам не нужно выполнять эти функции самостоятельно.
browserHistory имеет 2 метода push()
и replace()
, которые выполняют те же функции, что и @fazal, упомянутые в его ответе, но лучше.
Итак, если вы хотите, чтобы пользователь не возвращался в предыдущее состояние, вам нужно использовать browserHistory().replace
Начните с импорта в свой код: -
import {browserHistory} from 'react-router'
После активации пользователя вы выполните следующие действия: -
browserHistory.replace(//your new link)
Ответ 2
API истории HTML5 предоставляет два метода для Adding and modifying history entries
.
pushState()
: заднее состояние сохранено
replaceState()
: нет обратного состояния
Предполагая, что вы используете react-router
.
Итак, на вашем Компоненте используйте
this.props.history.replaceState('your new state')
подробнее... Управление историей браузера
видео: REACT JS TUTORIAL # 6 - React Router & Введение в одностраничные приложения с React JS
Ответ 3
Я знаю, что это старая проблема, но у меня была похожая проблема, и ни один из других ответов не был на 100% применим к моей версии или React
, но это должно работать в более поздних версиях путем очистки добавленных путей.
//replace(path, state)
this.props.history.replace("/home", "urlhistory");
Ответ 4
window.location.href = 'Your path';
или
document.location.replace().