Reactjs IndexRoute不适用于“/”
我有一个带有react router 2.4的路由器,看起来像:Reactjs IndexRoute不适用于“/”,reactjs,react-router,Reactjs,React Router,我有一个带有react router 2.4的路由器,看起来像: import ReactDOM from 'react-dom'; import React from 'react'; import { IndexRoute, Router, Route, browserHistory } from 'react-router'; import { Provider } from 'react-redux'; import * as Pages from 'pages'; import App
import ReactDOM from 'react-dom';
import React from 'react';
import { IndexRoute, Router, Route, browserHistory } from 'react-router';
import { Provider } from 'react-redux';
import * as Pages from 'pages';
import App from 'containers/App/App';
import store from './stores';
function requireAuth(nextState, replace) {
if (!store.getState().user) {
replace('/login');
}
}
export default function render() {
ReactDOM.render(
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/">
<Route path="login" component={Pages.Login} />
<Route path="/" component={App} onEnter={requireAuth}>
<IndexRoute component={Pages.Dashboard} />
<Route path=":list_id" component={Pages.List} />
</Route>
</Route>
</Router>
</Provider>,
document.getElementById('lists')
);
}
除了IndexRoute之外,其他一切都正常。如果我将IndexRoute放在应用程序上下文中,它将不起作用。如果我把它放在应用程序上下文之外,它就会工作。我如何为应用程序上下文中的/定义路由,同时允许登录等其他路由位于应用程序上下文之外
我的应用程序正确地呈现this.props.children,因为它对列表组件的效果与预期的一样。您多次使用相同的路径=“/”,而不是使用唯一的路径值,还将登录作为单独的路径
定义如下所示的路线:
<Router history={browserHistory}>
<Route path="/login" component={Pages.Login} />
<Route path="/" component={App} onEnter={requireAuth}>
<IndexRoute component={Pages.Dashboard} />
<Route path=":list_id" component={Pages.List} />
</Route>
</Router>
如果我这样做,那么应用程序上下文将独立于用户是否经过身份验证而显示。我更新了这个问题,这样你就可以看到这个问题的逻辑。另外,我必须把/login放在上面,否则登录就会变成:list_idApp上下文独立于用户是否经过身份验证而显示,但没有得到这个。我的意思是,应用组件加载的内容独立于用户是否登录而显示。但别担心,这是另一个与此无关的问题。谢谢你的帮助!我认为你可以把支票放在应用程序组件里面。