реакция-переход маршрутизатора на новую страницу с другим параметром строки запроса

#query-string #react-router

#запрос-строка #реакция-маршрутизатор

Вопрос:

У меня есть следующий код в файле, который инициализирует мой реактивный маршрутизатор:

 import { Router, Route, IndexRoute, useRouterHistory } from 'react-router'
import { createHistory } from 'history'

const browserHistory = useRouterHistory(createHistory)({basename:CONFIG.baseName})

<Router history={browserHistory}>
<Route path={"/list/:propertyType"} component={Leasing} />
<Route path={"/list/:propertyType?city=:city"} component={Leasing} />
</Router>
 

На моей веб-странице у меня есть несколько ссылок, таких как

 import { Link } from 'react-router'
... some code
<Link to="/list/office" />
<Link to="/list/retail" />
<Link to="/list/retail?city=Washington" />
 

Когда я перехожу со страницы /list/office на /list/retail , моя веб-страница перезагружает данные. Но проблема в том, что страница не будет перезагружать данные, когда я перехожу с /list/retail на /list/retail?city=Washington .

Как мне сделать клики по ссылкам, которые имеют ту же часть url, но другую часть строки запроса, чтобы браузер отображал новое содержимое?

Ответ №1:

Я понял, что когда я перехожу от /list/office к /list/retail , как функции render() , так и componentDidMount() срабатывает. Но когда я перехожу от /list/retail к /list/retail?city=Washington , только render() срабатывает и componentDidMount() НЕ срабатывает.

Таким образом, в основном любой контент, который я загружал через ajax в componentDidMount() , не распознавался, когда менялись только параметры запроса URL.