Reactjs 更改URL中的单个参数

Reactjs 更改URL中的单个参数,reactjs,react-router,Reactjs,React Router,我希望能够创建指向我所在的同一路线的链接,,但某些参数的更改除外 在我的网站中,我决定使用如下结构的URL:/list/:page(\d+)?/:filter?。现在,在我的组件中,我可以访问match(使用withRouterHOC)。在我的情况下,它包含 { isExact: true params: {page: "3", filter: "duckbitt"} path: "/listing/:page(\d+)?/:filt

我希望能够创建指向我所在的同一路线的链接,,但某些参数的更改除外

在我的网站中,我决定使用如下结构的URL:
/list/:page(\d+)?/:filter?
。现在,在我的组件中,我可以访问
match
(使用
withRouter
HOC)。在我的情况下,它包含

{
  isExact: true
  params: {page: "3", filter: "duckbitt"}
  path: "/listing/:page(\d+)?/:filter?"
  url: "/listing/3/duckbitt"
}
这很好,因为我有参数和路径。 现在,这提出了两个问题:

  • 对于这种情况,是否有react路由器内置解决方案

  • 如果没有,是否有可能使用regexp的
    路径解决方案,或者我应该使用naive search and replace


  • 当然,一个解决方案会在发布问题后立即出现

    import pathToRegexp from 'path-to-regexp';
    // (...)
    const toPath = pathToRegexp.compile(match.path);
    const newPath = toPath({ ...match.params, page: 666 });
    console.log(newPath); // "/listing/666/duckbitt"