2017-03-09 109 views
0

我如何能實現maybeGoToBar這樣 - 這取決於名字 - 我顯示Foo組件或Bar組件不改變網址如何重定向陣營路由器不改變網址

function maybeGoToBar(nextState, replace, callback) { 
    const name = nextState.params.name; 
    if (name === "Bob") { 
    // do something to route to /bar 
    // but keep showing /bob/foo as the current location 
    // in the browser address bar 
    } 
    callback(); 
} 

<Route path=":name/foo" onEnter={maybeGoToBar} component={Foo} > 
<Route path="bar" component={Bar} > 
+0

對我來說聽起來像你不應該使用路由器來做到這一點。你應該在你的組件中存儲一個狀態變量(如果需要,它的初始值可以從url中獲取),你應該根據狀態選擇要顯示的孩子。 – caesay

+0

[React路由器沒有改變URL]可能的重複(http://stackoverflow.com/questions/39721812/react-router-without-changing-url) – Gajus

回答

0

您需要使用記憶歷史。

Link

+0

我讀了這個選項有不利的一面,初始URL(用於打開頁面)不由路由器處理。 – mnieber