使用react-router删除查询字符串而不重新加载页面?

Rae*_*MAM 1 javascript reactjs react-router react-router-v4 react-router-dom

在我的应用程序中,我有一个查询字符串,我想在单击按钮后将其删除。

我得到这样的查询字符串:

  import qs from 'query-string'
  // ..

  const { search } = url
  const { id } = qs.parse(search)

Run Code Online (Sandbox Code Playgroud)

然后,当我单击按钮时,我想删除字符串而不重新加载页面。

  const onClick = () => {
     history.push({})
  }
Run Code Online (Sandbox Code Playgroud)

然而上面的代码并没有按预期工作。

Sam*_*ant 8

您应该能够通过调用来替换状态replace。对 Push 的调用将在历史记录中添加一个新条目,这会破坏之前的按钮。对替换的调用不会推送,而是替换当前页面。

const onClick = () => {
  history.replace(pathWithoutTheQuery)
}
Run Code Online (Sandbox Code Playgroud)