Может реагировать маршрутизатор, есть маршрут с несколькими параметрами, где (например) оба требуются, или нет - PullRequest
0 голосов
/ 10 декабря 2018

С помощью response-router-dom у меня есть такой маршрут:

<Route path='/:year?/:month?' component={ThingUsingYearAndMonth} />

Но на самом деле я хочу, чтобы ОБА год и месяц существовали (например, /2018/Dec или /2017/Jan) или ни того, ни другого.Т.е. просто / 2018 не будет соответствовать

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Попробуйте указать явные параметры с помощью регулярного выражения:

<Route path='/:year(\\d{4})?/:month([A-Za-z]+)?' component={ThingUsingYearAndMonth} />
0 голосов
/ 10 декабря 2018

Не думаю, что react-router-dom предоставляет какой-либо механизм для проверки параметров маршрута.Вам лучше создать свой собственный компонент высшего порядка и проверить параметры маршрута в нем.Или вы можете использовать регулярные выражения для проверки параметров в самом маршруте.

0 голосов
/ 10 декабря 2018

Я бы, вероятно, справился с этим, используя два маршрута - один для тех случаев, когда оба предоставлены, и один для тех случаев, когда ни один не предоставлен:

<Route path='/:year/:month' component={ThingUsingYearAndMonth} />
<Route path='/' exact component={ThingUsingYearAndMonth} />
...