Мои маршруты определены следующим образом:
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="experiments">
<IndexRoute component={Experiments} />
</Route>
<Route path="*" component={NoMatch}/>
</Route>
</Router>
Когда я посещаю /experiments
, все работает, как и ожидалось, и отображается компонент Experiments. Однако, когда я вручную ввожу URL-адрес с параметрами запроса, например: /experiments?offset=50
, маршрут не совпадает!
Но когда я перемещаюсь с помощью <Link to={{ pathname='/experiments', query={offset:50} }} />
, все работает как положено. Компонент Experiments отображается, и this.props.location.query.offset
устанавливается на 50
.
Как сделать так, чтобы маршрут совпадал, когда URL-адрес со строкой запроса вводится вручную (или копируется)?
Кажется, маршрут должен автоматически соответствовать url-with-query-string-not-matching-react-router-route, но, похоже, он не работает для меня.
Редактировать: я сузил проблему до всеобъемлющего маршрута path="*"
. Когда я удаляю этот маршрут, все работает (например, когда я посещаю /experiments?offset=50
). Но никакие маршруты не совпадают, когда присутствует универсальный маршрут, даже если он находится в нижней части списка приоритетов.