我正在尝试使用react-router (v5)在单击按钮时仅更新一个查询参数key-value。
const btnClickHandler = () =>{
history.push({ search: 'popup=false' });
}我希望这段代码从以下位置更新url:
https://base-url.com/?popup=true&checked=true至:
https://base-url.com/?popup=false&checked=true相反,它将整个搜索替换为:
https://base-url.com/?popup=false基本上,我不需要替换所有的查询参数键值,如何只替换一个呢?
发布于 2020-05-09 02:41:11
您需要自己合并查询参数,然后才能更新它们。您可以使用query-string (https://www.npmjs.com/package/query-string)库来简化您的工作。
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) });
}
}https://stackoverflow.com/questions/61685743
复制相似问题