Я не уверен, как получить чистый URL-адрес с помощью реагирующего маршрутизатора.

На данный момент у меня есть:

http://localhost:8889/#/myRoute?_k=qq67x0

Я бы хотел вот это:

http://localhost:8889/myRoute

Есть ли какой-то конкретный шаг конфигурации, который я должен установить, чтобы исправить это?

Вот как я инициализирую роутер:

import { browserHistory, Router, Route, Link, IndexRoute } from 'react-router

А вот моя функция рендеринга:

render((

  
    
    
    
  

), document.getElementById ('react-container'))

РЕДАКТИРОВАТЬ:

Я установил последнюю версию роутера и теперь он работает как положено.

Спасибо!

Florian G

Ответов: 1

Ответы (1)

Взгляните на документацию в разделе «Что это за ? _ K = ckuvup мусор в URL-адресе?»:

Когда история перемещается по вашему приложению с помощью push или replace, он может сохранять «состояние местоположения», которое не отображается в URL-адресе в новом местоположении, подумайте о это немного похоже на данные публикации в форме HTML.

DOM API, который история хэшей использует для перехода, - это просто window.location.hash = newHash, без места для хранения состояния местоположения. Но мы хотим, чтобы все истории могли использовать состояние местоположения, поэтому мы подключаем его, создавая уникальный ключ для каждого местоположения, а затем сохраняем это состояние в хранилище сеанса. Когда посетитель нажимает «назад» и «вперед», у нас теперь есть механизм для восстановления состояния местоположения.

Документы пакета истории объясняют, как отказаться, если вы хотите продолжать использовать хеш-историю:

Если вы предпочитаете использовать другой параметр запроса или полностью отказаться от этого поведения, используйте параметр конфигурации queryKey.

импортировать createHistory из 'history / lib / createHashHistory'

// Используйте _key вместо _k.
let history = createHistory ({
  queryKey: '_key'
})

// Отказ от постоянного состояния не рекомендуется.
let history = createHistory ({
  queryKey: ложь
})

Если вы хотите использовать API HTML 5 pushState, как вы упомянули в своем вопросе, вам следует использовать browserHistory в конфигурации вашего маршрутизатора вместо hashHistory:

импорт {Router, browserHistory} из 'response-router'

<История маршрутизатора = {browserHistory}>
  ...

Она полная страница «Истории» в документации React Router для получения дополнительной информации.

2022 WebDevInsider