reactjs - 在 react 路由器中连接多个查询参数

标签 reactjs react-router react-router-dom

这个问题在这里已经有了答案:





How do you programmatically update query params in react-router?

(11 个回答)


去年关闭。




我正在使用 react-router-dom v 5.2.0。我想在 URL 中添加多个查询参数,但我不知道如何完成它。
我的路线是这样的:

<Route path="/admin/users" component={UserList} />

我想传递多个查询参数,例如...
/admin/users?search=hello&page=1&user_role=admin

目前我正在手动操作,例如...

<Link to="/admin/users?user_role=admin" />

但是,使用此手动操作,我无法连接多个查询参数。有没有办法动态连接查询参数?是否react-router-dom它有自己的做这些事情的方式吗?

最佳答案

您可以使用 query-string 打包至 parse queryParams 到对象中,这将允许您轻松编辑它们,然后 stringify在您将它们传递给链接之前。

import qs from 'query-string';

...
const queryParam = qs.parse(location.search);
const newQueryParam = {
   ...queryParam,
   user_role: 'admin',
   something_else: 'something',
}


...
<Link to={{ pathname: '/admin/users', search: qs.stringify(newQueryParam)}} />

关于reactjs - 在 react 路由器中连接多个查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61990792/

相关文章:

javascript - div背景不是全尺寸,只有文本大小

javascript - 如何从表外使用搜索过滤器?

javascript - React setState() 保证

reactjs - 具有不同内容的跨路由的通用组件

javascript - 如何在使用 React 提交表单后重定向用户

javascript - react 如何在按钮单击时重新呈现占位符

javascript - react-router-dom 的链接在 firefox 中不起作用

reactjs - window.location.replace() 的 React 版本?

reactjs - 错误: Invariant failed: You should not use <Switch> outside a <Router> even though my structure is good

javascript - React-router-dom 页面导航