我有这样的网址;
http://0.0.0.0/country/bosnia-and-herzegovina-644
这是我的路线声明
<Route path="/country/:countrySlug-:countryId" component={CountryPage} />
所以这不起作用,因为连字符打破它,我怎么能改变它所以我只提取最后一个连字符作为参数,我真的不想改变我的slug生成系统使用不同的字符,因为这些是最可读的恕我直言,但仅用于信息,而不是内容加载。
由于
答案 0 :(得分:1)
我不知道你是否可以这样做,但也许你可以这样做:
<Route path="/country/:country" component={CountryPage} />
然后在组件中:
const countryId = this.props.match.params.country.slice('-').pop();
答案 1 :(得分:0)
参数分隔和单词分隔不能同时使用连字符-
。
您可以使用连字符-
进行参数分隔,并在符号_
之间使用下划线countrySlug
。
您的网址看起来像
http://0.0.0.0/country/bosnia_and_herzegovina-644
现在使用此Route声明
<Route path="/country/:countrySlug-:countryId" component={CountryPage} />
生成链接时,请不要忘记用_
符号代替空格,否则您的URL将会是这样。
http://0.0.0.0/country/bosnia%20and%20herzegovina-644
但是仍然可以正常工作。