当前位置: 首页 > 知识库问答 >
问题:

如何以编程方式更新react路由器中的查询参数?

时衡虑
2023-03-14

我似乎找不到如何更新查询参数与反应路由器不使用

如何在react router中不使用

onChange函数真的是监听查询更改的唯一方法吗?为什么查询更改不会自动检测到并响应参数更改的方式?


共有3个答案

晏鸿畅
2023-03-14

约翰的答案是正确的。当我处理参数时,我还需要URLSearchParams接口

this.props.history.push({
    pathname: '/client',
    search: "?" + new URLSearchParams({clientId: clientId}).toString()
})

您可能还需要使用withRouterHOC包装组件,例如export default withRouter(您的组件)

董权
2023-03-14

使用react路由器v4、redux thunk和react路由器redux(5.0.0-alpha.6)包的示例。

当用户使用搜索功能时,我希望他能够向同事发送相同查询的网址链接。

import { push } from 'react-router-redux';
import qs from 'query-string';

export const search = () => (dispatch) => {
    const query = { firstName: 'John', lastName: 'Doe' };

    //API call to retrieve records
    //...

    const searchString = qs.stringify(query);

    dispatch(push({
        search: searchString
    }))
}
农弘毅
2023-03-14

hash历史推送方法中,可以指定查询参数。例如,

history.push({
  pathname: '/dresses',
  search: '?color=blue'
})

或者

history.push('/dresses?color=blue')

有关使用history

 类似资料:
  • 问题内容: 我似乎找不到不使用来使用react- router更新查询参数的方法。似乎没有注册查询参数,而且似乎也不能将查询对象或任何内容作为第二个参数传递。 如何从更改URL ,以在反应路由器没有使用? 而且是一个真正的函数来监听查询变化的唯一途径?为什么没有自动检测到查询更改并对参数更改做出反应? 问题答案: 在中,您可以指定查询参数。例如, 要么 您可以查看此存储库以获取有关使用的其他示例

  • 我已将路径修改为 在此之后,如果我试图访问url,它不会将我重定向到适当的页面,而是抛出一个错误,如下所示

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re

  • 我正在尝试使用http://localhost:3000/login?Id=1这样的查询参数来实现React路由器,我只能在我的登录路由中实现它,如果我将路径作为http://localhost:3000/然后重定向,但是,我想在整个应用程序中实现。如果我在其他路由上实现,它会匹配路由。这就是我的的样子,有人能指导我如何实现包括查询参数在内的所有路由路径吗?

  • 这个问题试图解决的问题很简单: “我可以通过编程将道具从一个场景发送到另一个场景吗?如果可以,如何发送?” 下面我提供了一组示例代码,希望有人能够一劳永逸地解决这个问题。 长话短说,一旦用户单击submit,该文件将接受输入和输出,此函数称为: 我将永远感激任何理解这个问题并能解释我的困境的人。 非常感谢。