2017-02-17 27 views
0

Мои маршруты выглядеть следующим образом:Реагировать Router Redux - бесконечный цикл при перенаправлении от IndexRoute

render(
    <Provider store={store}> 
    <Router history={history}> 
     <Route path="/" component={App}> 
     <IndexRoute component={SEOModuleComponent} onEnter={(nextState, replace) => { replace({ pathName: 'getStarted' }); }} onChange={() => {}} /> 
     <Route path="getStarted" component={GetStartedView} onChange={() => {}} /> 
     </Route> 
    </Router> 
    </Provider>, 
    document.getElementById('app-container') 
); 

Когда я загрузить приложение - это входит в бесконечный цикл, постоянно пытается перенаправить 'getStarted'

Любой знает, почему это происходит?

ответ

1

Почему вы не используете <IndexRedirect>?

<Router history={history}> 
    <Route path="/" component={App}> 
    <IndexRedirect to="/getStarted" /> 
    <Route path="getStarted" component={GetStartedView} onChange={() => {}} /> 
    </Route> 
</Router> 
+0

Поскольку 'onEnter' логика в моем фактическом применении не так просто, как один, представленной в примере. –

0

Проблема заключалась в следующем:

(nextState, replace) => { replace({ pathName: 'getStarted' }); }

Поскольку "pathName" не "pathname" (в нижнем регистре) - внутренняя работа модуля истории React-маршрутизатор были недобросовестная Перенаправляющей к "/" который был ток путь, создавая цикл.

Выпуск открыл здесь: https://github.com/ReactTraining/react-router/issues/4545