使用“?”时在反应路由中传递参数的问题并在其后放一些东西

Posted

技术标签:

【中文标题】使用“?”时在反应路由中传递参数的问题并在其后放一些东西【英文标题】:problem at passing params in react routing when you use "?" and put something after it 【发布时间】:2020-08-02 18:50:45 【问题描述】:

我知道这个问题可能看起来有点令人困惑,所以让我解释一下, 我有一个项目页面,它根据它的限制加载项目并给出你,下一页和上一页urlurl 是这样的,

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

【讨论】:

以上是关于使用“?”时在反应路由中传递参数的问题并在其后放一些东西的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器参数

ReactJS:从 rails 传递参数以将路由器反应到组件

如何从 URL 中隐藏反应路由器参数和查询字符串

在反应路由器中连接多个查询参数[重复]

反应路由器,以编程方式导航时传递数据?

反应路由器链接到新标签