Я хочу объявить путь с необязательным параметром пути, поэтому, когда я добавляю его, страница делает что-то дополнительное (например, заполняет некоторые данные):
http: // localhost / app / path / to / page <= отобразить страницу http: // localhost / app / path / to / page / pathParam <= отобразить страницу с некоторыми данными в соответствии с pathParam
В моем реагирующем маршрутизаторе у меня есть следующие пути для поддержки двух вариантов (это упрощенный пример):
<Router history={history}>
<Route path="/path" component={IndexPage}>
<Route path="to/page" component={MyPage}/>
<Route path="to/page/:pathParam" component={MyPage}/>
</Route>
</Router>
Мой вопрос, можем ли мы объявить это по одному маршруту? Если я добавлю только вторую строку, маршрут без параметра не будет найден.
EDIT # 1:
Упомянутое здесь решение о следующем синтаксисе у меня не сработало, верно? Существует ли это в документации?
<Route path="/product/:productName/?:urlID?" handler={SomeHandler} />
Моя версия реакции-маршрутизатора: 1.0.3
/route(/:category/(:article)
Для любых пользователей React Router v4, прибывающих сюда после поиска, необязательные параметры в a
<Route>
обозначаются?
суффиксом.Вот соответствующая документация:
https://reacttraining.com/react-router/web/api/Route/path-string
https://www.npmjs.com/package/path-to-regexp#optional
Простой пример разбитого на страницы раздела сайта, к которому можно получить доступ с номером страницы или без нее.
источник
<Match pattern />
, теперь<Route path />
снова, но суффикс вопросительного знака остается подходом для обработки необязательных параметров.players
,players/123
,players/123/edit
,players?unseen=true
. Необязательный параметр?unseen
не работает для меня. хотя я попробовал все исправления из этого обсуждения. Не могли бы вы помочь с правильной строкой пути, которая будет обрабатывать это? Заранее спасибо!example.com/search?query=test
попробуйте использовать следующий шаблон/:search(search)
.Рабочий синтаксис для нескольких необязательных параметров:
Теперь URL может быть:
источник
для реакции-маршрутизатора V5 и выше используйте синтаксис ниже для нескольких путей
источник