2015-12-21 159 views
3

我想用路由器作出反應的備選配置:不過,我遇到了麻煩重定向到工作https://github.com/rackt/react-router/blob/1.0.x/docs/guides/basics/RouteConfiguration.md#alternate-configuration陣營路由器重定向使用備用路由配置

。我試過這個:

const routes = { 
    childRoutes: [ 
    { path: '/test', component: Test }, 
    ], 
    component: App, 
    path: '/', 
    redirect: { 
    from: '/', 
    to: '/test', 
    }, 
}; 

據我所知,沒有這方面的文件。功能是否存在?應該怎麼做?

回答

1

比較在你發佈的鏈接示例代碼,上面(在Preserving URLs),我認爲樣品兩個樣本是指設置在相同航線(唯一的區別可能就是最後一個使用備用配置) 。而且我們可以推斷出目前使用重定向的方式是使用onEnter函數。

舉例來說,如果你想這(使用JSX):

<Redirect from="messages/:id" to="/messages/:id" /> 

並使用備用配置,你必須把它寫這樣的:

{ path: 'messages/:id', 
    onEnter: function (nextState, replaceState) { 
    replaceState(null, '/messages/' + nextState.params.id) 
    } 
} 

更新:你的特殊情況是特殊的,因爲你想從/重定向,所以你可能想嘗試使用IndexRedirectindexroute

+1

謝謝@Protron。這並不完全正確,但是使用'onEnter'讓我思考。下面是我如何解決它:'onEnter :(nextState,transition)=> {if(nextState.location.pathname ==='/')transition.to('/ test',null); } },' –

+0

@Chris Nice!但如果您有興趣尋找其他解決方案,您可能需要查看我的答案中的更新。 –

+0

轉換不是進入函數的參數之一。我有同樣的問題試圖重定向'/'與其他一些別的東西。這比複雜得多,但你可以執行'require.ensure':/。 – Sawtaytoes