Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs IndexRoute不适用于“/”_Reactjs_React Router - Fatal编程技术网

Reactjs IndexRoute不适用于“/”

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

我有一个带有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 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上下文独立于用户是否经过身份验证而显示,但没有得到这个。我的意思是,应用组件加载的内容独立于用户是否登录而显示。但别担心,这是另一个与此无关的问题。谢谢你的帮助!我认为你可以把支票放在应用程序组件里面。