【问题标题】:Change only one route param只改变一个路由参数
【发布时间】:2016-06-16 18:53:45
【问题描述】:

假设我有一个带有三个参数的Route,如下所示:

<Route path="inbox/:filter/:middleFilter/:endFilter" component={Inbox}/>

我有什么方法可以一次只更新其中一个参数吗?例如,如果当前 URL 是:

/inbox/asdf/1234/qwer

我想更改数字1234 (middleFilter),有没有 React Router 的更新方式?大致如下:

history.push({
  params: {
    middleFilter: 6789
  }
})

【问题讨论】:

    标签: javascript reactjs ecmascript-6 react-router


    【解决方案1】:

    我能想到的唯一解决方案就是阅读this.props.params,看看当前的params是什么,重建URL并推送:

    const { filter, endFilter } = this.props.params;
    const middleFilter = 6789;
    
    history.push(`/inbox/${filter}/${middleFilter}/${endFilter}`)
    

    我不太喜欢这个解决方案,因为我需要知道 URL 的样子和所有可用的过滤器,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2021-05-02
      • 2023-04-08
      • 2016-02-10
      • 2017-05-29
      • 1970-01-01
      • 2016-06-25
      相关资源
      最近更新 更多