Я использую реагирующий маршрутизатор и подключенный реагирующий маршрутизатор и пытаюсь связать текущее состояние приложения с URL-адресом. Я хотел бы обновить URL в браузере, не вызывая фактический маршрут. По сути, это эквивалент Router.navigate в Backbone.js (если кто-то знаком с этим динозавром).
Я знаю, что есть это:
export const openListingDetail = (props = {}) => (dispatch, getState) => {
// open the listing detail modal for listing at props.id
dispatch(push(`/listing/${props.id}`));
};
но это запускает тот маршрут для выполнения, который не тот, который я хочу.
Что касается контекста варианта использования, пользователь просматривает несколько карточек листинга, и когда они щелкают по одной из них, я просто хочу, чтобы создатель действия открыл модал, содержащий подробный вид листинга, и в основном изменил маршрут с * От 1008 * до /listings/<id>
.
Я не хочу, чтобы он проходил через маршрутизатор, потому что я не хочу, чтобы состояние страницы поиска было потеряно, так как это будет прямо за модальной информацией о листинге, и пользователь может вернуться к ней, просто закрыв модал.
У меня такое поведение работает в версии нашего приложения Electron, которая использует Backbone, но я не уверен, как воспроизвести его в веб-версии нашего приложения, созданной с использованием React и Redux.