Магазин 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')
}
тоже не работает.
Как этого добиться?