2015-12-21 162 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