只改变一个路线参数

时间:2016-03-03 12:33:33

标签: javascript reactjs ecmascript-6 react-router

我们说我有Route有三个参数,如下:

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

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

/inbox/asdf/1234/qwer

我希望更改数字1234middleFilter),是否有任何React Router更新方式?有点像:

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

1 个答案:

答案 0 :(得分:1)

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

const { filter, endFilter } = this.props.params;
const middleFilter = 6789;

history.push(`/inbox/${filter}/${middleFilter}/${endFilter}`)

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