首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React Router:仅更新一个查询参数,而不是替换所有参数

React Router:仅更新一个查询参数,而不是替换所有参数
EN

Stack Overflow用户
提问于 2020-05-09 02:32:57
回答 1查看 2.9K关注 0票数 6

我正在尝试使用react-router (v5)在单击按钮时仅更新一个查询参数key-value。

代码语言:javascript
复制
const btnClickHandler = () =>{
    history.push({ search: 'popup=false' });
}

我希望这段代码从以下位置更新url:

代码语言:javascript
复制
https://base-url.com/?popup=true&checked=true

至:

代码语言:javascript
复制
https://base-url.com/?popup=false&checked=true

相反,它将整个搜索替换为:

代码语言:javascript
复制
https://base-url.com/?popup=false

基本上,我不需要替换所有的查询参数键值,如何只替换一个呢?

EN

回答 1

Stack Overflow用户

发布于 2020-05-09 02:41:11

您需要自己合并查询参数,然后才能更新它们。您可以使用query-string (https://www.npmjs.com/package/query-string)库来简化您的工作。

代码语言:javascript
复制
import qs from 'query-string';

const Component = ({ location}) => {

    const btnClickHandler = () =>{
        const queryParams = qs.parse(location.search);
        const newQueries = { ...queryParams, popup:false};
        history.push({ search: qa.stringify(newQueries) });
    }

 }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61685743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档