React Router Dom - 清除URL参数而不刷新页面

3

我有一些通过链接传递到URL的参数,例如:

https://mysite/post/list?success

考虑到我正在使用React JSReact router dom,我应该如何在不刷新页面的情况下清除参数,以便支持后退按钮? 我的目标是在没有参数的情况下返回相同的页面。

编辑:在这里提出了解决方案,但此解决方案对于此情况无效

  const queryParams = new URLSearchParams(location.search)
  queryParams.delete('success')
  history.replace({
    search: queryParams.toString(),
  })
    

在处理参数时,通过应用“if”链,它确实可以按情况工作,但我正在寻找一种能够一次性清除所有参数的函数 - 是否有一种方法可以使用.delete方法来实现?


这个回答解决了你的问题吗?如何使用 React Hooks 删除查询参数? - GAntoine
很遗憾,我会尝试清除整个参数而不是一个单独和定义的字符串,因此.delete()没有起作用... - Horkos
1个回答

2
发现了它!
   const queryParams = ""
   history.replace({
     search: queryParams,
   })

'Twas dead simple and efficient. Closing.


1
这里不需要使用toString(),因为queryParams已经是一个字符串了,尽管它仍然可以工作并且不会出错。这只是多余的。评论中链接的问题使用了const queryParams = new URLSearchParams(location.search),所以需要使用queryParams.toString() - Matt U

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接