使用“?”时在反应路由中传递参数的问题并在其后放一些东西
Posted
技术标签:
【中文标题】使用“?”时在反应路由中传递参数的问题并在其后放一些东西【英文标题】:problem at passing params in react routing when you use "?" and put something after it 【发布时间】:2020-08-02 18:50:45 【问题描述】:我知道这个问题可能看起来有点令人困惑,所以让我解释一下,
我有一个项目页面,它根据它的限制加载项目并给出你,下一页和上一页url
,
url
是这样的,
url = "https://api.sth.com/v1/all-tours/NY?page=1"
我到那个组件的路径是这样的
<Route path="/Tours/:Tourtype/:city" component=MainPage>
</Route>
这是我到该页面的链接
<Link to=`/Tours/all-tours/$SearchResult.slug?page=1`>
</Link>
这是我在组件中调用 api 的方式
axios.post(`http://api.hichhop.com/v1/all-tours/$this.props.match.params.city`, options)
.then((response) =>
console.log(response)
);
但我面临的问题是 this.props.match.params.city
就是这样
this.props.match.params.city= "NY"
不是这样的
this.props.match.params.city= "NY?page=1"
【问题讨论】:
【参考方案1】:我假设您使用的是'react-router-dom'
。因此,我还假设您可以访问位置。请尝试以下操作:this.props.location.search
当您打开 url = "https://api.sth.com/v1/all-tours/NY?page=1"
时,您将能够检索到以下字符串:"?page=1"
。对于NY参数,您将不得不继续使用this.props.match.params.city
【讨论】:
以上是关于使用“?”时在反应路由中传递参数的问题并在其后放一些东西的主要内容,如果未能解决你的问题,请参考以下文章