Магазин Redux теряется при следующем маршруте на replace() внутри onEnter

Итак, похоже на код в router.jsв шаблоне по адресу https://github.com/erikras/react-redux-universal-hot-example/ master branch

const requireLogin = (nextState, replace, cb) => {

    if(!isLoggedIn) {
        store.dispatch(getUserInfo(somePayLoad)).then(checkLoginStatus);
    }
    function checkLoginStatus() {
        const {authorization: { user }} = store.getState();
        if(!user.typeA) {
            replace('/home');
        }
        cb();
    }
}

Итак, когда я replace()и если условие if !user.typeA происходит сбой, затем он переходит к обычному вызываемому маршруту, получает доступ к данным пользователя, которые были извлечены, как в приведенном выше коде, а также, я могу легко вызвать logout диспетчер я писал всякий раз, когда пользователь хочет выйти. Но когда условие выполнено, оно заменяет /home страница и успешно открывается (перенаправляет) на домашнюю страницу. Но я больше не могу иметь данные пользователя в authorization хранить. Ни я не могу позвонить logout диспетчер.

Замечания:

  if(!user.typeA) {
      const path = '/home';
      const query = {error:'anything'};
      const state = store.getState();
      replace({ path, query, state });
  }

вместо

  if(!user.typeA) {
      replace('/home')
  }

тоже не работает.

Как этого добиться?

0 ответов

Другие вопросы по тегам