在路由配置对象中使用indexRedirect

时间:2016-03-04 15:47:31

标签: react-router

我想知道是否可以在路由配置对象中使用“indexRedirect”(所以不使用JSX)。

我尝试没有成功,所以我认为目前不支持此功能,但后来我的问题(https://github.com/reactjs/react-router/issues/3150)被关闭而没有发表评论,所以我仍然不知道是不是因为该功能是已经存在,但我滥用它,或者因为这是一个不需要的功能。

提前致谢。 :)

3 个答案:

答案 0 :(得分:2)

in the docs所述,使用普通配置对象的indexRedirect等效于此

const routes = [{
  path: '/',
  component: App,
  indexRoute: { onEnter: (nextState, replace) => replace('/welcome') },
  childRoutes: [
    { path: 'welcome', component: Welcome },
    { path: 'about', component: About }
  ]
}]

答案 1 :(得分:0)

使用普通路由将它配置为更低级别的API,并且路由对象中没有特殊的redirectindexRedirect密钥。相反,您可以使用onEnter来完成重定向。方法如下:

import React from 'react'
import { render } from 'react-dom';
import { Router, browserHistory } from 'react-router'

const Home = () => <h3>Home</h3>

const About = () => <h3>About</h3>

const routes = [{
  path: '/',
  component: Home,
  onEnter: (nextState, replace) => replace('/about')
}, {
  path: '/about',
  component: About
}]

render(
  <Router history={browserHistory} routes={routes} />,
  document.getElementById('root')
);

修改:也将此添加到docs

答案 2 :(得分:0)

我会欣赏与JGX相同的事情:为这种重定向工作相对路径