如何处理react-router中的url param更改?

时间:2016-04-03 06:47:48

标签: reactjs react-router

我有初始网址

/processes/new

进行更改后我想保存它&导航到

/processes/_generatedprocessID_

所以我订阅routerWillLeave并希望它会触发url param更改。但它没有发生。 这是我的路由器这些网址:

<Route path="processes/:id" component={Process} />

我应该创建它的副本:

<Route path="processes/new" component={Process} />

还是有一些更优雅的方式?

1 个答案:

答案 0 :(得分:0)

如果您有一个包含这些组件的容器,则可以在那里完成此路由逻辑。

function saveSomething(something){
    //some save logic that returns id
    changeRoute(returned_id)
}

function changeRoute(returned_id){
    history.pushState(null, `processes/${returned_id}`);
}

注意:您需要这个 - &gt;

NameOfTheCoponent.contextTypes = {
    history: PropTypes.object
};