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().