我有这个简单的应用程序:
// index.js
import React from 'react'
import { render } from 'react-dom'
import { Router, Route, IndexRedirect, browserHistory } from 'react-router'
import A from './a'
import B from './b'
render((
<Router history={browserHistory}>
<Route path='/foo' component={A}>
<IndexRedirect to='1' />
<Route path=':bar' component={B} />
</Route>
</Router>
), document.getElementById('root'))
当我在/foo/3
时,如果我单击指向/foo/
的链接,我将被重定向到/foo/1
。
有没有一种简单的方法可以使IndexRedirect
重定向到已在使用的segment
而不是默认的?
您可以使用浏览器历史记录侦听器
browserHistory.listen(function(ev) {
console.log('listen', ev.pathname.split('/'));
var pathData = ev.pathname.split('/');
});
并将您的<IndexRedirect to='1' />
更换为您想要的任何东西例如:
var defaultIndex = 1
browserHistory.listen(function(ev) {
console.log('listen', ev.pathname.split('/'));
var pathData = ev.pathname.split('/');
defaultIndex = pathData[1]
});
<Router history={browserHistory}>
<Route path='/foo' component={A}>
<IndexRedirect to={defaultIndex} />
<Route path=':bar' component={B} />
</Route>
</Router>
这对我有用。