Сопоставление маршрутов с дефисами вact-router - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть такие URL;

http://0.0.0.0/country/bosnia-and-herzegovina-644

Это моя декларация маршрута

<Route path="/country/:countrySlug-:countryId" component={CountryPage} />

Так что это не работает, поскольку дефис разбивает его, как я могу изменить его, чтобы я извлек только последний дефис в качестве параметра, я действительно не хочу менять свою систему генерации слагов, чтобы использовать другой символ, так как это Наиболее читаемое ИМХО, но используется только для информации, а не для загрузки контента.

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Вы не можете использовать дефис - для разделения параметров и слов.

Вы можете использовать дефис - для разделения параметров и подчеркивание _ для пробела между countrySlug словами.

Здесь ваш URL будет выглядеть как

http://0.0.0.0/country/bosnia_and_herzegovina-644

Теперь используйте эту декларацию маршрута

<Route path="/country/:countrySlug-:countryId" component={CountryPage} />

Когда вы создадите ссылку, не забудьте заменить пробел знаком _, иначе ваш URL будет выглядеть следующим образом.

http://0.0.0.0/country/bosnia%20and%20herzegovina-644

Но все равно, он будет работать нормально.

0 голосов
/ 29 апреля 2018

Я не знаю, можете ли вы сделать это, но, возможно, вы могли бы сделать это:

<Route path="/country/:country" component={CountryPage} />

затем в компоненте:

const countryId = this.props.match.params.country.slice('-').pop();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...