#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.