Универсальный Auth Redux & React Router

У меня возникли некоторые проблемы с аутентификацией с помощью редукционного и реагирующего маршрутизатора, и я надеюсь получить разъяснения о том, как наилучшим образом решить мою проблему.

У меня есть компонент входа, который при отправке отправляет следующее действие:

export const loginUser = (creds) => {
  return dispatch => {

    dispatch(requestLogin(creds))

    return fetch('http://127.0.0.1:4000/api/login', {
      ...
    })
      .then(res => {
        dispatch(receiveLogin())
        browserHistory.push('/admin')
        ...
      })
      ...
  }
}

Действие receiveLogin обновляет флаг isAuthenticated в состоянии до true. Мой защищенный маршрут имеет следующий хук onEnter:

export default (state) => {
  return {
    path: '/',
    component: App,
    childRoutes: [
      {
        path: 'protected',
        component: Protected,
        ...
        onEnter(nextState, replaceState) {
          const loggedIn = //check state.isAuthenticated
          if (!loggedIn) {
            replaceState(null, 'login')
          }
        }
      }
    ]
  }
}

Как видите, я передаю состояние в качестве аргумента. Это дает мне доступ к исходному состоянию как с сервера, так и с клиента. Однако после того, как произойдет мое действие по входу в систему, очевидно, что хук onEnter все еще будет использовать начальное состояние.

То, что я хочу знать, - лучший способ получить текущее состояние после обновления флага isAuthenticated и использовать его вместо этого в моем хуке onEnter. Или же мой подход полностью ошибочен, и я должен делать это совсем по-другому?

Ответы на вопрос(1)

Ваш ответ на вопрос